import { Navigate, useLocation } from "react-router-dom"; import { useAuth } from "@/contexts/AuthContext"; interface RequireAccessProps { allowedRealms?: Array< "game_developer" | "client" | "community_member" | "customer" | "staff" >; allowedRoles?: string[]; children: React.ReactElement; } export default function RequireAccess({ allowedRealms, allowedRoles, children, }: RequireAccessProps) { const { user, profile, roles } = useAuth(); const location = useLocation(); const realmOk = !allowedRealms || allowedRealms.includes((profile as any)?.user_type); const rolesOk = !allowedRoles || (Array.isArray(roles) && roles.some((r) => allowedRoles.includes(r.toLowerCase()))); if (!user) return ( ); if (!realmOk || !rolesOk) return ; return children; }