diff --git a/client/src/components/ProtectedRoute/InverseProtectedRoute.tsx b/client/src/components/ProtectedRoute/InverseProtectedRoute.tsx new file mode 100644 index 0000000000000000000000000000000000000000..cec52d96bfe3d13df3f824cf26371811e72a2a83 --- /dev/null +++ b/client/src/components/ProtectedRoute/InverseProtectedRoute.tsx @@ -0,0 +1,14 @@ +import { Navigate, Outlet } from 'react-router-dom'; +import { useAuth } from '../../hooks/useAuth'; + +function InverseProtectedRoute() { + const { isAuth } = useAuth(); + + if (!isAuth) { + return <Outlet></Outlet> + } + + return <Navigate to={'/'}></Navigate> +} + +export default InverseProtectedRoute; diff --git a/client/src/main.tsx b/client/src/main.tsx index 6e9c4d9b9095218974ed1a2de7663a3ebec0d74e..bde443c098c2754e4f5a44f7879221f58517d7ed 100644 --- a/client/src/main.tsx +++ b/client/src/main.tsx @@ -6,6 +6,7 @@ import Login from './components/Login/Login.tsx'; import Register from './components/Register/Register.tsx'; import Logout from './components/Logout/Logout.tsx'; import ProtectedRoute from './components/ProtectedRoute/ProtectedRoute.tsx'; +import InverseProtectedRoute from './components/ProtectedRoute/InverseProtectedRoute.tsx'; import Dashboard from './components/Dashboard/Dashboard.tsx'; import BookingQuery from './components/BookingQuery/BookingQuery.tsx'; import BookingList from './components/BookingList/BookingList.tsx'; @@ -23,21 +24,26 @@ const router = createBrowserRouter([ element: <App></App>, children: [ { - path: 'login', - element: <Login></Login> - }, - { - path: 'register', - element: <Register></Register> - }, - { - path: 'logout', - loader: LogoutUser, - element: <Logout></Logout> + element: <InverseProtectedRoute></InverseProtectedRoute>, + children: [ + { + path: 'login', + element: <Login></Login> + }, + { + path: 'register', + element: <Register></Register> + } + ] }, { element: <ProtectedRoute></ProtectedRoute>, children: [ + { + path: 'logout', + loader: LogoutUser, + element: <Logout></Logout> + }, { path: 'customer-dashboard', loader: GetCustomerDashboardData,