Extend PrivateRoute to allow render functions
This commit is contained in:
parent
a12b14d10d
commit
77c32f4ec2
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue