import React from 'react'; import check, { IAuthorityType } from './CheckPermissions'; import AuthorizedRoute from './AuthorizedRoute'; import Secured from './Secured'; interface AuthorizedProps { authority: IAuthorityType; noMatch?: React.ReactNode; } type IAuthorizedType = React.FunctionComponent & { Secured: typeof Secured; check: typeof check; AuthorizedRoute: typeof AuthorizedRoute; }; const Authorized: React.FunctionComponent = ({ children, authority, noMatch = null, }) => { const childrenRender: React.ReactNode = typeof children === 'undefined' ? null : children; const dom = check(authority, childrenRender, noMatch); return <>{dom}; }; export default Authorized as IAuthorizedType;