"use client"

import { useModuleAccess } from "@/hooks/use-module-access";
import { ReactNode } from "react";
import { LoadingSpinner } from "@/components/ui/loading-spinner";

interface ModuleGuardProps {
    module: string;
    children: ReactNode;
    fallback?: ReactNode;
}

export function ModuleGuard({ module, children, fallback = null }: ModuleGuardProps) {
    const hasAccess = useModuleAccess(module);

    if (hasAccess === null) {
        return <LoadingSpinner />;
    }

    if (hasAccess === false) {
        return <>{fallback}</>;
    }

    return <>{children}</>;
}
