import type { PropsWithChildren } from "react"; import { Navigate, useLocation } from "react-router-dom"; import { Spinner } from "../components/Spinner"; import { useMe } from "../hooks/auth"; import { useAdminMe } from "../hooks/admin"; export function RequireAuth({ children }: PropsWithChildren) { const { data: me, isLoading } = useMe(); const location = useLocation(); if (isLoading) return ; if (!me) return ; return <>{children}; } export function RequireGroup({ children }: PropsWithChildren) { const { data: me, isLoading } = useMe(); if (isLoading) return ; if (!me) return ; if (me.active_group_id == null) return ; return <>{children}; } export function RequireAdmin({ children }: PropsWithChildren) { const { data: admin, isLoading } = useAdminMe(); if (isLoading) return ; if (!admin) return ; return <>{children}; }