CodeReview/frontend/src/app/ProtectedRoute.tsx

21 lines
490 B
TypeScript
Raw Normal View History

import { Navigate, Outlet, useLocation } from 'react-router-dom';
import { useAuth } from '@/shared/context/AuthContext';
export const ProtectedRoute = () => {
const { isAuthenticated, isLoading } = useAuth();
const location = useLocation();
if (isLoading) {
return <div className="flex h-screen items-center justify-center">Loading...</div>;
}
if (!isAuthenticated) {
return <Navigate to="/login" state={{ from: location }} replace />;
}
return <Outlet />;
};