"use client";

import { type ReactNode } from "react";
import { useAuthStore } from "@/lib/store/useAuthStore";
import type { UserRole } from "@/lib/types";

interface Props {
  role: UserRole | UserRole[];
  fallback?: ReactNode;
  children: ReactNode;
}

export default function RoleGate({ role, fallback = null, children }: Props) {
  const user = useAuthStore((s) => s.user);
  const roles = Array.isArray(role) ? role : [role];
  if (!user || !roles.includes(user.role)) return <>{fallback}</>;
  return <>{children}</>;
}
