Files
booking_webapp/src/auth/RequireSignIn.tsx
2026-04-10 21:48:23 -05:00

29 lines
599 B
TypeScript

import type { ReactNode } from "react";
import { Navigate, useLocation } from "react-router-dom";
import { useAuth } from "./AuthContext";
export function RequireSignIn({ children }: { children: ReactNode }) {
const { user, loading } = useAuth();
const location = useLocation();
if (loading) {
return (
<div className="auth-loading">
<p>Loading</p>
</div>
);
}
if (!user) {
return (
<Navigate
to="/auth/sign-in"
state={{ from: `${location.pathname}${location.search}` }}
replace
/>
);
}
return children;
}