Extend PrivateRoute to allow render functions

This commit is contained in:
Marquis Kurt 2020-01-07 11:24:34 -05:00
parent a12b14d10d
commit 77c32f4ec2
No known key found for this signature in database
GPG Key ID: 725636D259F5402D
1 changed files with 6 additions and 5 deletions

View File

@ -78,14 +78,14 @@ export const ProfileRoute = (rest: any, component: Component) => (
export const PrivateRoute = (props: IPrivateRouteProps) => { export const PrivateRoute = (props: IPrivateRouteProps) => {
const { component, render, ...rest } = props; const { component, render, ...rest } = props;
const redir = (comp: any) =>
userLoggedIn ? comp : <Redirect to="/welcome" />;
return ( return (
<Route <Route
{...rest} {...rest}
render={(compProps: any) => render={(compProps: any) =>
userLoggedIn() ? ( redir(
React.createElement(component, compProps) React.createElement(render ? render : component, compProps)
) : (
<Redirect to="/welcome" />
) )
} }
/> />
@ -93,5 +93,6 @@ export const PrivateRoute = (props: IPrivateRouteProps) => {
}; };
interface IPrivateRouteProps extends RouteProps { interface IPrivateRouteProps extends RouteProps {
component: any; component?: any;
render?: any;
} }