UNPKG

permission-js-react

Version:

React component for permission-js which makes it easy to add permissions in any React application

23 lines (19 loc) 1.48 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import * as permission_js_core from 'permission-js-core'; import { BaseActions, BaseConditions, factoryPermission, CheckPermissions } from 'permission-js-core'; import { PropsWithChildren } from 'react'; type ReturnFactoryPermission<S extends string, A extends BaseActions<S>, C extends BaseConditions<S>> = ReturnType<typeof factoryPermission<S, A, C>>; interface PermissionProviderProps<S extends string, A extends BaseActions<S>, C extends BaseConditions<S>> { children: React.ReactNode | ((update: ReturnFactoryPermission<S, A, C>['update']) => React.ReactNode); } declare function factoryReactPermission<S extends string, A extends BaseActions<S>, C extends BaseConditions<S>>(): { usePermission: () => { can: <Subjects extends S, Action extends A[Subjects]>(args: CheckPermissions<Subjects, Action, C>) => boolean; update: <Subject extends S>(subject: Subject, action: A[Subject][number], value: permission_js_core.Rules<S, A, C>[Subject][A[Subject][number]]) => void; }; Can: <Subjects extends S, Action extends A[Subjects]>({ children, element, ...args }: PropsWithChildren<CheckPermissions<Subjects, Action, C> & { element?: React.ReactNode; }>) => React.ReactNode; PermissionProvider: ({ children }: PermissionProviderProps<S, A, C>) => react_jsx_runtime.JSX.Element; }; export { type PermissionProviderProps, type ReturnFactoryPermission, factoryReactPermission };