import type { FC, PropsWithChildren } from "react"; import { Navigate, useLocation } from "react-router"; import { useAuth } from "@/features/auth"; import { RouteSkeleton } from "./RouteFallback"; const Protected: FC = (props) => { const { children } = props; const { ready, user } = useAuth(); const location = useLocation(); if (!ready) return ; return user ? ( <>{children} ) : ( ); }; const Public: FC = (props) => { const { children } = props; const { ready, user } = useAuth(); const location = useLocation(); if (!ready) return ; const requested = (location.state as null | { returnTo?: string })?.returnTo; const returnTo = typeof requested === "string" && requested.startsWith("/") && !requested.startsWith("//") ? requested : "/accounts"; return user ? : <>{children}; }; export { Protected, Public };