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 ;
};