index.js 2.15 KB
Newer Older
d.arizona's avatar
d.arizona committed
1 2
import React from "react";
import {
qorri_di's avatar
qorri_di committed
3 4 5 6
  BrowserRouter as Router,
  Switch,
  Route,
  Redirect
d.arizona's avatar
d.arizona committed
7
} from "react-router-dom";
syadziy's avatar
syadziy committed
8 9 10 11 12 13 14 15
import Home from '../container/Menu/Home'
import Login from '../container/Auth/Login'
import Register from '../container/Auth/Register'
import Screen404 from '../container/Auth/Screen404'
import ForgotPassword from '../container/Auth/ForgotPassword'
import ResetPassword from '../container/Auth/ResetPassword'
import SetPassword from '../container/Auth/SetPassword'
import EmailVerification from "../container/Auth/EmailVerification";
d.arizona's avatar
d.arizona committed
16
import Constant from "../library/Constant";
d.arizona's avatar
d.arizona committed
17
import ShadowScreen from "../container/ShadowScreen";
qorri_di's avatar
qorri_di committed
18 19
import Maintenance from "../container/Auth/Maintenance";
import MaintenanceMode from "../container/GeneralSetting/MaintenanceMode";
d.arizona's avatar
d.arizona committed
20 21

export default function BasicExample() {
qorri_di's avatar
qorri_di committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
  
  return (
    <Router basename={process.env.REACT_APP_URL_MAIN_FE}>
      <Switch>
        <Route exact path="/">
          <Redirect
            to={{
              pathname: "/home/beranda",
            }}
          />
        </Route>
        <Route path="/login" component={Login}/>
        <Route path="/forgot-password" component={ForgotPassword} />
        <Route path="/reset-password/:id" component={ResetPassword} />
        <Route path="/set-password/:id" component={SetPassword} />
        <Route path="/email-verification" component={EmailVerification} />
        <Route path="/register" component={Register}/>
        <Route path="/cronjob/:type" component={ShadowScreen}/>
        <Route path="/maintenance" component={Maintenance}/>
        <PrivateRoute path="/home">
          <Home/>
        </PrivateRoute>
        <Route path="*">
          <Screen404 />
        </Route>
      </Switch>
    </Router>
  );
d.arizona's avatar
d.arizona committed
50 51 52
}

function PrivateRoute({ children, ...rest }) {
qorri_di's avatar
qorri_di committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
  console.log(rest);
  const logged = localStorage.getItem(Constant.TOKEN) !== null ? true : false
  
  return (
    <Route
      {...rest}
      render={({ location }) =>
        logged ? (
          children
        ) : (
          <Redirect
            to={{
              pathname: "/login",
              state: { from: location }
            }}
          />
        )
      }
    />
  );
d.arizona's avatar
d.arizona committed
73
}