index.js 2.52 KB
Newer Older
d.arizona's avatar
d.arizona committed
1 2 3 4 5
import React from "react";
import {
  BrowserRouter as Router,
  Switch,
  Route,
d.arizona's avatar
d.arizona committed
6
  Link,
d.arizona's avatar
d.arizona committed
7 8
  useLocation,
  Redirect
d.arizona's avatar
d.arizona committed
9
} from "react-router-dom";
d.arizona's avatar
d.arizona committed
10 11 12
import Home from '../container/Home'
import Login from '../container/Login'
import Register from '../container/Register'
d.arizona's avatar
d.arizona committed
13
import Screen404 from '../container/Screen404'
EKSAD's avatar
EKSAD committed
14
import ForgotPassword from '../container/ForgotPassword'
EKSAD's avatar
EKSAD committed
15
import ResetPassword from '../container/ResetPassword'
a.bairuha's avatar
a.bairuha committed
16
import SetPassword from '../container/SetPassword'
EKSAD's avatar
EKSAD committed
17
import EmailVerification from "../container/EmailVerification";
d.arizona's avatar
d.arizona committed
18
import Constant from "../library/Constant";
d.arizona's avatar
d.arizona committed
19
import ShadowScreen from "../container/ShadowScreen";
d.arizona's avatar
d.arizona committed
20 21 22 23 24 25 26 27 28 29
// This site has 3 pages, all of which are rendered
// dynamically in the browser (not server rendered).
//
// Although the page does not ever refresh, notice how
// React Router keeps the URL up to date as you navigate
// through the site. This preserves the browser history,
// making sure things like the back button and bookmarks
// work properly.

export default function BasicExample() {
d.arizona's avatar
d.arizona committed
30
  
d.arizona's avatar
d.arizona committed
31
  return (
d.arizona's avatar
d.arizona committed
32
    <Router basename={process.env.REACT_APP_URL_MAIN_FE}>
Deni Rinaldi's avatar
Deni Rinaldi committed
33
      <Switch>
d.arizona's avatar
d.arizona committed
34 35 36
        <Route exact path="/">
          <Redirect
            to={{
d.arizona's avatar
d.arizona committed
37
              pathname: "/home/beranda",
d.arizona's avatar
d.arizona committed
38 39 40 41
              // state: { from: location }
            }}
          />
        </Route>
d.arizona's avatar
d.arizona committed
42 43 44
        <Route path="/login" component={Login}/>
          {/* <Login/>
        </PrivateRoute> */}
EKSAD's avatar
EKSAD committed
45
        <Route path="/forgot-password" component={ForgotPassword} />
EKSAD's avatar
EKSAD committed
46
        <Route path="/reset-password/:id" component={ResetPassword} />
a.bairuha's avatar
a.bairuha committed
47
        <Route path="/set-password/:id" component={SetPassword} />
EKSAD's avatar
EKSAD committed
48
        <Route path="/email-verification" component={EmailVerification} />
d.arizona's avatar
d.arizona committed
49
        <Route path="/register" component={Register}/>
d.arizona's avatar
d.arizona committed
50
        <Route path="/cronjob/:type" component={ShadowScreen}/>
d.arizona's avatar
d.arizona committed
51 52 53
        <PrivateRoute path="/home">
          <Home/>
        </PrivateRoute>
d.arizona's avatar
d.arizona committed
54 55 56
        <Route path="*">
          <Screen404 />
        </Route>
Deni Rinaldi's avatar
Deni Rinaldi committed
57
      </Switch>
d.arizona's avatar
d.arizona committed
58 59
    </Router>
  );
d.arizona's avatar
d.arizona committed
60 61 62
}

function PrivateRoute({ children, ...rest }) {
d.arizona's avatar
d.arizona committed
63 64 65
  // React.useEffect(() => {
  //   token()
  // })
d.arizona's avatar
d.arizona committed
66
  const logged = localStorage.getItem(Constant.TOKEN) !== null? true : false
d.arizona's avatar
d.arizona committed
67 68 69 70 71
  // const token = async() => {
  //   let a = await localStorage.getItem(Constant.TOKEN)
  //   alert(a)
  // }
  
d.arizona's avatar
d.arizona committed
72 73 74 75
  return (
    <Route
      {...rest}
      render={({ location }) =>
d.arizona's avatar
d.arizona committed
76 77 78
        logged ? (
          children
        ) : (
d.arizona's avatar
d.arizona committed
79 80 81
          <Redirect
            to={{
              pathname: "/login",
d.arizona's avatar
d.arizona committed
82
              state: { from: location }
d.arizona's avatar
d.arizona committed
83 84
            }}
          />
d.arizona's avatar
d.arizona committed
85
        )
d.arizona's avatar
d.arizona committed
86 87 88
      }
    />
  );
d.arizona's avatar
d.arizona committed
89
}