index.js 2.41 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 20 21 22 23 24 25 26 27 28
// 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
29
  
d.arizona's avatar
d.arizona committed
30
  return (
d.arizona's avatar
d.arizona committed
31
    <Router basename={process.env.REACT_APP_URL_MAIN_FE}>
Deni Rinaldi's avatar
Deni Rinaldi committed
32
      <Switch>
d.arizona's avatar
d.arizona committed
33 34 35
        <Route exact path="/">
          <Redirect
            to={{
d.arizona's avatar
d.arizona committed
36
              pathname: "/home/beranda",
d.arizona's avatar
d.arizona committed
37 38 39 40
              // state: { from: location }
            }}
          />
        </Route>
d.arizona's avatar
d.arizona committed
41 42 43
        <Route path="/login" component={Login}/>
          {/* <Login/>
        </PrivateRoute> */}
EKSAD's avatar
EKSAD committed
44
        <Route path="/forgot-password" component={ForgotPassword} />
EKSAD's avatar
EKSAD committed
45
        <Route path="/reset-password/:id" component={ResetPassword} />
a.bairuha's avatar
a.bairuha committed
46
        <Route path="/set-password/:id" component={SetPassword} />
EKSAD's avatar
EKSAD committed
47
        <Route path="/email-verification" component={EmailVerification} />
d.arizona's avatar
d.arizona committed
48
        <Route path="/register" component={Register}/>
d.arizona's avatar
d.arizona committed
49 50 51
        <PrivateRoute path="/home">
          <Home/>
        </PrivateRoute>
d.arizona's avatar
d.arizona committed
52 53 54
        <Route path="*">
          <Screen404 />
        </Route>
Deni Rinaldi's avatar
Deni Rinaldi committed
55
      </Switch>
d.arizona's avatar
d.arizona committed
56 57
    </Router>
  );
d.arizona's avatar
d.arizona committed
58 59 60
}

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