import type { ReactElement } from 'react'; import { Navigate, Outlet } from 'react-router-dom'; import { useSession } from '@/lib/auth-client'; export function GuestGuard(): ReactElement { const { data: session } = useSession(); return session ? : ; } export function AuthGuard(): ReactElement { const { data: session, isPending } = useSession(); if (isPending) { return (
Loading...
); } return session ? : ; } export function AdminGuard(): ReactElement { const { data: session, isPending } = useSession(); if (isPending) { return (
Loading...
); } if (!session) { return ; } const user = session.user as typeof session.user & { role?: string }; return user.role === 'admin' ? : ; }