import { Navigate, useLocation } from "react-router-dom"; import { useAuth } from "@/contexts/AuthContext"; import Layout from "@/components/Layout"; import { Card, CardHeader, CardTitle, CardDescription, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; 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 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 ( Access Access denied Sign in required to view this page. ); } if (!realmOk || !rolesOk) { return ( Access Access denied You don’t have the required realm or role for this area. ); } return children; }