All files / blong-browser/src/components/Permission Permission.tsx

0% Statements 0/16
0% Branches 0/1
0% Functions 0/1
0% Lines 0/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                                 
/**
 * Permission — conditionally renders children based on user permissions.
 */
import {type ReactNode} from 'react';
import {usePermission} from '../../hooks/usePermission.js';

interface IPermissionProps {
    permission?: string | boolean | null;
    fallback?: ReactNode;
    children: ReactNode;
}

export function Permission({permission, fallback = null, children}: IPermissionProps) {
    const allowed = usePermission(permission);
    return allowed ? <>{children}</> : <>{fallback}</>;
}