diff --git a/frontend/src/components/RouteGuards.tsx b/frontend/src/components/RouteGuards.tsx index ff2b46f..5c4d53e 100644 --- a/frontend/src/components/RouteGuards.tsx +++ b/frontend/src/components/RouteGuards.tsx @@ -4,8 +4,9 @@ import { useAuth } from "../hooks/useAuth"; import SplashScreen from "./SplashScreen"; /** - * Post-login routes. - * Redirects to /login if not already authenticated. + * Private route guard. + * If not authenticated, capture the current url in route + * state so the Login component can link them back after sign-in */ export function ProtectedRoute({ children }: { children: React.ReactNode }) { const { isAuthenticated, isInitializing } = useAuth(); @@ -14,7 +15,6 @@ export function ProtectedRoute({ children }: { children: React.ReactNode }) { if (isInitializing) return ; if (!isAuthenticated) { - // Save the intended location to redirect back after login return ; } @@ -22,8 +22,8 @@ export function ProtectedRoute({ children }: { children: React.ReactNode }) { } /** - * Pre-login flows. - * Redirects to /drawer if already authenticated. + * Public - auth route guard. + * If authenticated, redirect all the auth related flows to the drawer */ export function PublicRoute({ children }: { children: React.ReactNode }) { const { isAuthenticated, isInitializing } = useAuth(); diff --git a/frontend/src/config/endpoints.ts b/frontend/src/config/endpoints.ts index 5107a53..3e38d8b 100644 --- a/frontend/src/config/endpoints.ts +++ b/frontend/src/config/endpoints.ts @@ -9,14 +9,14 @@ export const endpoints = { LETTERS: "/api/letters/", }; -// simple utility to handle path params +// constructs dynamic path params for activate flow export const replacePathParams = ( url: string, params: Record, ): string => { - let result = url; + let constructedUrl = url; for (const [key, value] of Object.entries(params)) { - result = result.replace(`:${key}`, value); + constructedUrl = constructedUrl.replace(`:${key}`, value); } - return result; + return constructedUrl; }; diff --git a/frontend/src/config/routes.ts b/frontend/src/config/routes.ts index 1aa1b61..56f9d4f 100644 --- a/frontend/src/config/routes.ts +++ b/frontend/src/config/routes.ts @@ -1,4 +1,4 @@ -// Route PATTERNS +// Page Route PATTERNS export const ROUTES = { HOME: "/", ONBOARD: "/onboard", @@ -6,13 +6,12 @@ export const ROUTES = { ACTIVATE: "/activate/:uidb64/:token", LOGIN: "/login", DRAWER: "/drawer", - WRITE: "/quill/:public_id?", // ← static pattern + WRITE: "/quill/:public_id?", READ: "/read/:public_id", }; -// Path BUILDERS +// Dynamic path BUILDERS export const PATHS = { write: (public_id?: string) => `/quill/${public_id ?? ""}`, read: (public_id: string) => `/read/${public_id}`, - activate: (uidb64: string, token: string) => `/activate/${uidb64}/${token}`, };