diff --git a/src/components/publicRoute/PublicRoute.tsx b/src/components/publicRoute/PublicRoute.tsx new file mode 100644 index 0000000..c6a6ac4 --- /dev/null +++ b/src/components/publicRoute/PublicRoute.tsx @@ -0,0 +1,22 @@ +import { Loader } from "components/Loader/Loader"; +import { Navigate, useParams } from "react-router-dom"; +import { useAppSelector } from "redux/hooks"; + +export const PublicRoute = ({ + children, +}: { + children: JSX.Element; +}) => { + const { token, loading } = useAppSelector((state) => state.auth); + const { subdomain } = useParams(); + + if (loading) { + return ; + } + + if (token) { + return ; + } + + return children; +}; diff --git a/src/routes/routes.tsx b/src/routes/routes.tsx index eea3eb2..d71ea4e 100644 --- a/src/routes/routes.tsx +++ b/src/routes/routes.tsx @@ -1,6 +1,7 @@ import { Grid } from "antd"; import { Loader } from "components/Loader/Loader"; import { PrivateRoute } from "components/privateRoute/PrivateRoute"; +import { PublicRoute } from "components/publicRoute/PublicRoute"; import { AppLayout } from "layouts"; import HeaderMenuDrawer from "layouts/app/HeaderMenuDrawer"; import AddressPage from "pages/address/page"; @@ -132,13 +133,29 @@ export const router = createHashRouter([ }, { path: "login", - element: } />, + element: ( + + + + } + /> + ), errorElement: , }, { path: "otp", - element: } />, + element: ( + + + + } + /> + ), errorElement: , }, {