UNPKG

@prabink/react-node-cli

Version:

React Node Application Generator & Helpers To Serve React Build, Push to github & Export industry level react project structure

59 lines (56 loc) 1.85 kB
import { Navigate, useRoutes } from "react-router-dom"; import LandingPage from "../pages/Landing.Page"; import Page404 from "../pages/404.Page"; import DashboardLayout from "./layouts/Dashboard.Layout"; import { PrivateRoute, PublicRoute } from "./components/Routes.Component"; import DashboardPage from "../pages/dashboard/Dashboard.Page"; import AuthLayout from "./layouts/Auth.Layout"; import LoginPage from "../pages/auth/Login.Page"; import RegisterPage from "../pages/auth/Register.Page"; import UserPage from "../pages/dashboard/User.Page"; import { observer } from "mobx-react"; import { useSelector } from 'react-redux'; import { getIsLoggedIn } from '../stores/user/selectors'; function Router() { const { isLoggedIn } = useSelector((state) => { return { isLoggedIn: getIsLoggedIn(state), }; }); console.log("isLoggedIn", isLoggedIn); return useRoutes([ { path: "/", element: <LandingPage /> }, { path: "/404", element: <Page404 /> }, { path: "/dashboard", element: ( <PrivateRoute isLoggedIn={isLoggedIn}> <DashboardLayout /> </PrivateRoute> ), children: [ { path: "/dashboard", element: <Navigate to="/dashboard/app" replace />, }, { path: "app", element: <DashboardPage /> }, { path: "user", element: <UserPage /> }, ], }, { path: "/auth", element: ( <PublicRoute isLoggedIn={isLoggedIn}> <AuthLayout /> </PublicRoute> ), children: [ { path: "/auth", element: <Navigate to="/auth/login" replace /> }, { path: "login", element: <LoginPage /> }, { path: "register", element: <RegisterPage /> }, ], }, { path: "*", element: <Navigate to="/404" replace /> }, ]); } export default observer(Router);