import { Routes as BaseRoutes, Navigate, Route, RouteProps, } from "react-router-dom"; import React, { Suspense } from "react"; import { useSelector } from "react-redux"; import { RootState } from "./redux/store/store"; import LoadingComponent from "./components/Loading"; import DashboardLayout from "./layouts/DashboardLayout"; // Page imports import Login from "./pages/Auth/Login"; import SignUp from "./pages/Auth/SignUp"; import Dashboard from "./pages/Dashboard"; import Vehicles from "./pages/Vehicles"; import AdminList from "./pages/AdminList"; import ProfilePage from "./pages/ProfilePage"; interface ProtectedRouteProps { caps: string[]; component: React.ReactNode; } // Protected Route Component const ProtectedRoute: React.FC = ({ caps, component }) => { if (!localStorage.getItem("authToken")) { return ; } return <>{component}; }; // Combined Router Component export default function AppRouter() { return ( }> {/* Default Route */} } index /> {/* Auth Routes */} } index /> } /> } /> {/* Dashboard Routes */} }> } /> } /> } /> } /> } /> } /> } /> } /> {/* Catch-all Route */} 404} /> ); }