Skip to content

Commit acde5f8

Browse files
using createBrowseRrouter,and seprated routes file
1 parent c929c87 commit acde5f8

File tree

4 files changed

+74
-72
lines changed

4 files changed

+74
-72
lines changed

web/src/App.tsx

Lines changed: 3 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,10 @@
1-
import React from 'react';
2-
import {
3-
createBrowserRouter,
4-
RouterProvider,
5-
Navigate,
6-
} from 'react-router-dom';
1+
import { RouterProvider } from 'react-router';
2+
import router from './routes/routes';
73
import { AuthProvider } from './context/AuthContext';
8-
import { ProtectedRoute, PublicRoute } from './guards/RouteGuards';
9-
import { AuthPage } from './components/pages/AuthPage';
10-
import { DashboardPage } from './components/pages/DashboardPage';
11-
import { LandingCard } from './components/organisms/LandingCard';
12-
import { LoginCard } from './components/organisms/LoginCard';
13-
import { RegisterCard } from './components/organisms/RegisterCard';
14-
import { AUTH_ROUTES, AUTH_ROUTE_SEGMENTS } from './routes/authRoutes';
15-
16-
const router = createBrowserRouter([
17-
{
18-
path: AUTH_ROUTES.base,
19-
element: <PublicRoute />,
20-
children: [
21-
{
22-
element: <AuthPage />,
23-
children: [
24-
{
25-
index: true,
26-
element: <LandingCard />,
27-
},
28-
{
29-
path: AUTH_ROUTE_SEGMENTS.login,
30-
element: <LoginCard />,
31-
},
32-
{
33-
path: AUTH_ROUTE_SEGMENTS.register,
34-
element: <RegisterCard />,
35-
},
36-
],
37-
},
38-
],
39-
},
40-
{
41-
path: '/dashboard',
42-
element: <ProtectedRoute />,
43-
children: [
44-
{
45-
index: true,
46-
element: <DashboardPage />,
47-
},
48-
],
49-
},
50-
{
51-
path: '*',
52-
element: <Navigate to={AUTH_ROUTES.base} replace />,
53-
},
54-
]);
55-
564
const App: React.FC = () => {
575
return (
586
<AuthProvider>
59-
<RouterProvider router={router} />
7+
<RouterProvider router={router} />;
608
</AuthProvider>
619
);
6210
};

web/src/guards/RouteGuards.tsx

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
1-
import React from 'react'
2-
import { Navigate, Outlet } from 'react-router-dom'
3-
import { useAuth } from '../context/AuthContext'
4-
import { LoadingScreen } from '../components/atoms/LoadingScreen'
5-
import { AUTH_ROUTES } from '../routes/authRoutes'
1+
import React from 'react';
2+
import { Navigate, Outlet } from 'react-router-dom';
3+
import { useAuth } from '../context/AuthContext';
4+
import { AUTH_ROUTES } from '../routes/authRoutes';
65

76
// ─── Protected Route ─────────────────────────────────────────
87
// Redirects unauthenticated users to /auth
9-
export const ProtectedRoute: React.FC<{ children?: React.ReactNode }> = ({ children }) => {
10-
const { user, loading } = useAuth()
8+
export const ProtectedRoute: React.FC<{ children?: React.ReactNode }> = ({
9+
children,
10+
}) => {
11+
const { user } = useAuth();
1112

12-
if (loading) return <LoadingScreen />
13-
if (!user) return <Navigate to={AUTH_ROUTES.base} replace />
13+
if (!user) return <Navigate to={AUTH_ROUTES.base} replace />;
1414

15-
return children ? <>{children}</> : <Outlet />
16-
}
15+
return children ? <>{children}</> : <Outlet />;
16+
};
1717

1818
// ─── Public Route ─────────────────────────────────────────────
1919
// Redirects authenticated users away from auth pages to /dashboard
20-
export const PublicRoute: React.FC<{ children?: React.ReactNode }> = ({ children }) => {
21-
const { user, loading } = useAuth()
20+
export const PublicRoute: React.FC<{ children?: React.ReactNode }> = ({
21+
children,
22+
}) => {
23+
const { user } = useAuth();
2224

23-
if (loading) return <LoadingScreen />
24-
if (user) return <Navigate to="/dashboard" replace />
25+
if (user) return <Navigate to="/dashboard" replace />;
2526

26-
return children ? <>{children}</> : <Outlet />
27-
}
27+
return children ? <>{children}</> : <Outlet />;
28+
};

web/src/routes/AppRouter.tsx

Whitespace-only changes.

web/src/routes/routes.tsx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { createBrowserRouter, Navigate } from "react-router";
2+
import { ProtectedRoute, PublicRoute } from "../guards/RouteGuards";
3+
4+
import { AuthPage } from "../components/pages/AuthPage";
5+
import { DashboardPage } from "../components/pages/DashboardPage";
6+
7+
import { LandingCard } from "../components/organisms/LandingCard";
8+
import { LoginCard } from "../components/organisms/LoginCard";
9+
import { RegisterCard } from "../components/organisms/RegisterCard";
10+
11+
import { AUTH_ROUTES, AUTH_ROUTE_SEGMENTS } from "./authRoutes";
12+
13+
const routes = createBrowserRouter([
14+
{
15+
path: AUTH_ROUTES.base,
16+
element: <PublicRoute />,
17+
children: [
18+
{
19+
element: <AuthPage />,
20+
children: [
21+
{
22+
index: true,
23+
element: <LandingCard />,
24+
},
25+
{
26+
path: AUTH_ROUTE_SEGMENTS.login,
27+
element: <LoginCard />,
28+
},
29+
{
30+
path: AUTH_ROUTE_SEGMENTS.register,
31+
element: <RegisterCard />,
32+
},
33+
],
34+
},
35+
],
36+
},
37+
{
38+
path: "/dashboard",
39+
element: <ProtectedRoute />,
40+
children: [
41+
{
42+
index: true,
43+
element: <DashboardPage />,
44+
},
45+
],
46+
},
47+
{
48+
path: "*",
49+
element: <Navigate to={AUTH_ROUTES.base} replace />,
50+
},
51+
]);
52+
53+
export default routes;

0 commit comments

Comments
 (0)