/** * @license * Copyright Stbui All Rights Reserved. * https://github.com/stbui/prophet */ import { createElement, FunctionComponent } from 'react'; import useAuthenticated from './useAuthenticated'; import usePermissions from './usePermissions'; export interface WithPermissionsProps { authParams?: object; component?: any; children?: any; [key: string]: any; } /** * * @example * * import { WithPermissions } from 'prophet-core'; * * const View = ({ permissions }) => { * return
{permissions === 'admin' ?

admin

: null}
* } * const Page = () => { * return }> * } */ const WithPermissions: FunctionComponent = ({ authParams, component, children, ...props }) => { useAuthenticated(authParams); const { permissions } = usePermissions(authParams); if (component) { return createElement(component, { permissions, ...props }); } return children({ permissions, ...props }); }; export default WithPermissions;