fix(auth): RequireAuth must use Outlet not children — React Router v6 requires Route guards to be Route elements
Some checks failed
app-ci-deploy / test-build-deploy (push) Has been cancelled

This commit is contained in:
CC Worker 2026-06-01 02:45:20 +00:00
parent 143fff6414
commit 8fe8edb341

View File

@ -66,7 +66,7 @@ const FullContextRoutes: React.FC = () => {
return <Outlet />;
};
const RequireAuth: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const RequireAuth: React.FC = () => {
const { user, isAuthResolving } = useAuth();
if (isAuthResolving) {
@ -88,7 +88,7 @@ const RequireAuth: React.FC<{ children: React.ReactNode }> = ({ children }) => {
return <Navigate to="/login" replace />;
}
return <>{children}</>;
return <Outlet />;
};
const AppRoutes: React.FC = () => {
@ -159,7 +159,7 @@ const AppRoutes: React.FC = () => {
/>
{/* Authentication only routes - only render if all contexts are initialized */}
<RequireAuth>
<Route element={<RequireAuth />}>
<Route element={<FullContextRoutes />}>
{/* Timetable Module Routes */}
<Route path="/timetable" element={<TimetablePage />} />
@ -190,7 +190,7 @@ const AppRoutes: React.FC = () => {
<Route path="/calendar" element={<CalendarPage />} />
<Route path="/settings" element={<SettingsPage />} />
</Route>
</RequireAuth>
</Route>
{/* Fallback route - authenticated users go to dashboard, unauthenticated see public 404 */}
<Route path="*" element={user ? <Navigate to="/dashboard" replace /> : <NotFoundPublic />} />