import { useMeQuery } from "@/features/auth/queries/auth.queries"; import { Navigate, Outlet, useLocation } from "react-router"; interface ProtectedRouteProps { requiredRole?: string; redirectTo?: string; redirectRoleTo?: { role: string; to: string }; } export default function ProtectedRoute({ requiredRole, redirectTo = "/dashboard", redirectRoleTo, }: ProtectedRouteProps) { const { data: user, isLoading } = useMeQuery(); const location = useLocation(); if (isLoading) { return (
); } if (!user) { return ; } if (redirectRoleTo && user.role === redirectRoleTo.role) { return ; } if (requiredRole && user.role !== requiredRole) { return ; } return ; }