Files
SCM-Manager/scm-ui/ui-components/src/ProtectedRoute.tsx

36 lines
911 B
TypeScript
Raw Normal View History

import React, { Component } from "react";
import { Route, Redirect, withRouter, RouteComponentProps, RouteProps } from "react-router-dom";
type Props = RouteComponentProps &
RouteProps & {
authenticated?: boolean;
};
class ProtectedRoute extends Component<Props> {
renderRoute = (Component: any, authenticated?: boolean) => {
return (routeProps: any) => {
if (authenticated) {
return <Component {...routeProps} />;
} else {
return (
<Redirect
to={{
pathname: "/login",
state: {
from: routeProps.location
}
}}
/>
);
}
};
};
render() {
const { component, authenticated, ...routeProps } = this.props;
2019-10-21 10:57:56 +02:00
return <Route {...routeProps} render={this.renderRoute(component, authenticated)} />;
}
}
export default withRouter(ProtectedRoute);