'use client'; import type { ReactNode } from 'react'; import { usePermissions } from '@/hooks/use-permissions'; import type { RolePermissions } from '@/lib/db/schema/users'; type Resource = keyof RolePermissions; type Action = keyof RolePermissions[R]; interface PermissionGateProps { resource: R; action: Action; children: ReactNode; fallback?: ReactNode; } export function PermissionGate({ resource, action, children, fallback = null, }: PermissionGateProps) { const { can } = usePermissions(); if (!can(resource, action)) { return <>{fallback}; } return <>{children}; }