Commit a0584e8a by asranov0003

fix: router and protected route logic

parent 0c26337e
......@@ -12,13 +12,17 @@ const ProtectedRoute: React.FC<ProtectedRouteProps> = ({
redirectTo,
}) => {
const isAuthenticated = !!localStorage.getItem(`token-${TG_USER_ID}`);
const pincode = !!sessionStorage.getItem(`pincode-${TG_USER_ID}`);
const hasPincode = !!sessionStorage.getItem(`pincode-${TG_USER_ID}`);
if (isAuthenticated && !pincode) {
if (!isAuthenticated) {
return <Navigate to={redirectTo} />;
}
if (!hasPincode) {
return <Navigate to="/pincode" />;
}
return isAuthenticated ? element : <Navigate to={redirectTo} />;
return element;
};
export default ProtectedRoute;
......@@ -22,26 +22,33 @@ const Router: React.FC = () => {
const router = createBrowserRouter([
{
path: "/",
element: isAuthenticated && <Navigate to={"/home"} />,
path: "/auth",
children: [
{
path: "/auth/login",
element: <Login />,
index: true,
element: isAuthenticated ? (
<Navigate to="/home" />
) : (
<Navigate to="/auth/login" />
),
},
{
path: "login",
element: isAuthenticated ? <Navigate to="/home" /> : <Login />,
},
{
path: "/auth/register",
element: <Register />,
path: "register",
element: isAuthenticated ? <Navigate to="/home" /> : <Register />,
},
{
path: "/auth/recover",
element: <Recover />,
path: "recover",
element: isAuthenticated ? <Navigate to="/home" /> : <Recover />,
},
],
},
{
path: "/",
element: <ProtectedRoute element={<Layout />} redirectTo="/" />,
element: <ProtectedRoute element={<Layout />} redirectTo="/auth/login" />,
children: [
{
path: "home",
......@@ -63,7 +70,7 @@ const Router: React.FC = () => {
},
{
path: "/pincode",
element: <Pincode />,
element: isAuthenticated ? <Pincode /> : <Navigate to="/auth/login" />,
},
{
path: "*",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment