From 96c4185e734a223d678c052a855a7d1f41cfb363 Mon Sep 17 00:00:00 2001 From: Francesco Esposito <33671357+frsposito@users.noreply.github.com> Date: Thu, 25 Jul 2019 09:34:21 +0200 Subject: [PATCH] feat: add private routes --- src/PrivateRoute.js | 15 +++++++++++++ src/Routes.js | 51 ++++++++++++++++++++++++++++----------------- 2 files changed, 47 insertions(+), 19 deletions(-) create mode 100644 src/PrivateRoute.js diff --git a/src/PrivateRoute.js b/src/PrivateRoute.js new file mode 100644 index 0000000..f89108e --- /dev/null +++ b/src/PrivateRoute.js @@ -0,0 +1,15 @@ +import React from "react"; +import { Redirect, Route } from "react-router-dom"; + +import { isLogin } from "./utils/auth"; + +export const PrivateRoute = ({ component: Component, ...rest }) => { + return ( + + isLogin() ? : + } + /> + ); +}; diff --git a/src/Routes.js b/src/Routes.js index 3df3e43..16bbb24 100644 --- a/src/Routes.js +++ b/src/Routes.js @@ -1,18 +1,23 @@ -import React, { Component } from 'react'; +import React, { Component } from "react"; +import { Container } from "reactstrap"; + import { - Container -} from 'reactstrap'; + BrowserRouter as Router, + Route, + Switch, + Redirect +} from "react-router-dom"; +import { PrivateRoute } from "./PrivateRoute"; -import { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom'; - -import Home from './containers/HomePage/Home'; -import CreateTicket from './containers/CreateTicket/CreateTicket'; -import ViewRequest from './containers/ViewTicket/ViewTicket'; -import PageNotFound from './containers/PageNotFound'; -import Login from './containers/Administration/Login'; -import TicketList from './containers/Administration/TicketList'; -import TicketManager from './containers/Administration/TicketManager'; +import { validateUser } from "./utils/auth"; +import Home from "./containers/HomePage/Home"; +import CreateTicket from "./containers/CreateTicket/CreateTicket"; +import ViewRequest from "./containers/ViewTicket/ViewTicket"; +import PageNotFound from "./containers/PageNotFound"; +import Login from "./containers/Administration/Login"; +import TicketList from "./containers/Administration/TicketList"; +import TicketManager from "./containers/Administration/TicketManager"; class Routes extends Component { constructor(props) { @@ -23,23 +28,31 @@ class Routes extends Component { render() { return ( - + - } /> + } + /> - - + + + - - {this.props.children} + + {this.props.children} ); } } -export default Routes; \ No newline at end of file +export default Routes;