AppRoutes:
return (
<Routes>
<Route path="/" element={<Home/>}/>
{!userStore.isLogin && (
<>
<Route path="/profile" element={<Navigate replace to="/auth"/>}/>
<Route path="/auth" element={<Auth/>}/>
<Route path="/register" element={<Register/>}/>
</>
)}
{userStore.isLogin && (
<>
<Route path="/profile" element={<Profile/>}/>
<Route path="/auth" element={<Navigate replace to="/"/>}/>
<Route path="/register" element={<Navigate replace to="/"/>}/>
</>
)}
</Routes>
)
onAuth function
const onAuth = async () => {
const result = await login(data);
if (result.ok) {
const localUser = JSON.stringify({
token: result.token,
isLogin: true
})
localStorage.setItem("user", localUser)
dispatch(userLogged({token: result.token}));
navigate("/profile")
} else {
setMessage(result?.message || "Произошла ошибка при выполнении запроса")
}
}
navigate("/profile") from onAuth function. It doesn't work. From the /auth page, I am redirected to /, via a condition in AppRoutes as if navigate("/profile") is ignored or overwritten