Skip to content
Snippets Groups Projects
Commit a58e32f7 authored by Cross, Liam (UG - Comp Sci & Elec Eng)'s avatar Cross, Liam (UG - Comp Sci & Elec Eng)
Browse files

Merge branch 'LC/inverse-protected-routes' into 'main'

Ensure logged in users can't go to login or register pages

See merge request ma03081/COM3014!21
parents 2d8ca6b3 292a178d
No related branches found
No related tags found
No related merge requests found
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;
...@@ -6,6 +6,7 @@ import Login from './components/Login/Login.tsx'; ...@@ -6,6 +6,7 @@ import Login from './components/Login/Login.tsx';
import Register from './components/Register/Register.tsx'; import Register from './components/Register/Register.tsx';
import Logout from './components/Logout/Logout.tsx'; import Logout from './components/Logout/Logout.tsx';
import ProtectedRoute from './components/ProtectedRoute/ProtectedRoute.tsx'; import ProtectedRoute from './components/ProtectedRoute/ProtectedRoute.tsx';
import InverseProtectedRoute from './components/ProtectedRoute/InverseProtectedRoute.tsx';
import Dashboard from './components/Dashboard/Dashboard.tsx'; import Dashboard from './components/Dashboard/Dashboard.tsx';
import BookingQuery from './components/BookingQuery/BookingQuery.tsx'; import BookingQuery from './components/BookingQuery/BookingQuery.tsx';
import BookingList from './components/BookingList/BookingList.tsx'; import BookingList from './components/BookingList/BookingList.tsx';
...@@ -23,21 +24,26 @@ const router = createBrowserRouter([ ...@@ -23,21 +24,26 @@ const router = createBrowserRouter([
element: <App></App>, element: <App></App>,
children: [ children: [
{ {
path: 'login', element: <InverseProtectedRoute></InverseProtectedRoute>,
element: <Login></Login> children: [
}, {
{ path: 'login',
path: 'register', element: <Login></Login>
element: <Register></Register> },
}, {
{ path: 'register',
path: 'logout', element: <Register></Register>
loader: LogoutUser, }
element: <Logout></Logout> ]
}, },
{ {
element: <ProtectedRoute></ProtectedRoute>, element: <ProtectedRoute></ProtectedRoute>,
children: [ children: [
{
path: 'logout',
loader: LogoutUser,
element: <Logout></Logout>
},
{ {
path: 'customer-dashboard', path: 'customer-dashboard',
loader: GetCustomerDashboardData, loader: GetCustomerDashboardData,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment