| 1234567891011121314151617181920212223242526272829303132 |
- import React from 'react';
- import { Route, Redirect } from 'umi';
- import Authorized from './Authorized';
- import { IAuthorityType } from './CheckPermissions';
- interface IAuthorizedRoutePops {
- currentAuthority: string;
- component: React.ComponentClass<any, any>;
- render: (props: any) => React.ReactNode;
- redirectPath: string;
- authority: IAuthorityType;
- }
- const AuthorizedRoute: React.SFC<IAuthorizedRoutePops> = ({
- 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;
|