import { useAuth } from "@/auth/AuthProvider";

interface RoleGuardProps {
  roles: string[];
  children: React.ReactNode;
  fallback?: React.ReactNode;
}

export function RoleGuard({ roles, children, fallback }: RoleGuardProps) {
  const { user } = useAuth();
  const hasRole = user?.roles.some((r) => roles.includes(r)) ?? false;

  if (!hasRole) {
    return (
      <>
        {fallback ?? (
          <div className="flex flex-col items-center justify-center h-64 text-center">
            <p className="text-lg font-semibold text-muted-foreground">Accès refusé</p>
            <p className="text-sm text-muted-foreground mt-1">
              Vous n&apos;avez pas les droits nécessaires pour accéder à cette section.
            </p>
          </div>
        )}
      </>
    );
  }

  return <>{children}</>;
}
