import { RouterProvider, createBrowserRouter } from "react-router-dom"; import { ProtectedRoute } from "./components"; import { AuthContextState, useAuth } from "./lib/hooks"; import { LoginPage } from "./pages/LoginPage"; export const Routes = () => { const { isLoggedIn } = useAuth() as AuthContextState; // Define public routes accessible to all users const routesForPublic = [ { path: "/service", element:
Service Page
, }, { path: "/about-us", element:
About Us
, }, ]; // Define routes accessible only to authenticated users const routesForAuthenticatedOnly = [ { path: "/admin", element: , // Wrap the component in ProtectedRoute children: [ { path: "", element:
Dashboard
, }, { path: "profile", element:
User Profile
, }, { path: "logout", element:
Logout
, }, ], }, ]; // Define routes accessible only to non-authenticated users const routesForNotAuthenticatedOnly = [ { path: "/", element:
Home Page
, }, { path: "/login", Component: LoginPage, }, ]; // Combine and conditionally include routes based on authentication status const router = createBrowserRouter([ ...routesForPublic, ...(!isLoggedIn ? routesForNotAuthenticatedOnly : []), ...routesForAuthenticatedOnly, ]); // Provide the router configuration using RouterProvider return ; };