Всем доброго дня.
Коллеги, как правильно выполнить настройку роутинга, если необходимо перенаправлять пользователя в личный кабинет в зависимости от его статуса?
Т.е. в приложении есть не авторизированный пользователь, есть админ и есть простой авторизированный пользователь. пока тренируюсь на локале, по этому просто по клику на кнопку меняю поле auth объекта isAuth на true и ставлю в поле user статус admin или user.
Вот так выглядит роутинг:
const Navigation = () => {
const {isAuth} = useContext(AuthContext)
return (
isAuth.auth
?
isAuth.user === 'admin'
?
<Routes>
<Route path="/admin/*" element={<AdminCabinet />} />
<Route path='*' element={<Navigate replace to="/admin" />}/>
</Routes>
:
<Routes>
<Route path="/lk" element={<UserCabinet />} />
<Route path='*' element={<Navigate replace to="/lk" />}/>
</Routes>
:
<Routes>
<Route path="/" element={<MainPage />} />
<Route path='*' element={<Navigate replace to="/" />}/>
</Routes>
);
};
Когда нажимаю вход все работает, в личные кабинеты система заходит. Но, если выйти из кабинетов и потом обновить страницу, то мы попадает по пути /lk. Хотя isAuth в это время стоит false. Как я понимаю, тернарный оператор нельзя так использовать. Но как тогда корректно отследить несколько состояний, если надо из 3 различных роутов выбирать? И как правильно сделать роутинг между админом, пользователем и не зарегистрированным человеком, если им всем разные страницы надо показывать?