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: () => 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;