Files
fe_supplier_frontend/src/components/Authorized/AuthorizedRoute.tsx

34 lines
819 B
TypeScript
Raw Normal View History

import { Redirect, Route } from 'umi';
import React from 'react';
import Authorized from './Authorized';
import type { IAuthorityType } from './CheckPermissions';
type AuthorizedRouteProps = {
currentAuthority: string;
component: React.ComponentClass<any, any>;
render: (props: any) => React.ReactNode;
redirectPath: string;
authority: IAuthorityType;
};
const AuthorizedRoute: React.SFC<AuthorizedRouteProps> = ({
component: Component,
render,
authority,
redirectPath,
...rest
}) => (
<Authorized
authority={authority}
noMatch={<Route {...rest} render={() => <Redirect to={{ pathname: redirectPath }} />} />}
>
<Route
{...rest}
render={(props: any) => (Component ? <Component {...props} /> : render(props))}
/>
</Authorized>
);
export default AuthorizedRoute;