PrivateRoute.js 649 Bytes
Newer Older
Kim, Chaerin's avatar
Kim, Chaerin committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { Redirect, Route } from "react-router-dom";
import { useAuth } from "../context/auth_context";
import ErrorPage from "../pages/ErrorPage";
import HomeGuestPage from "../pages/HomeGuestPage";

const PrivateRoute = ({ component: Component, ...rest }) => {
  const { user } = useAuth();
  return (
    <Route
      {...rest}
      render={(props) => {
        if (user) {
          if (rest.role === user.role) {
            return <Component {...props} />;
          } else {
            return <HomeGuestPage />;
          }
        } else {
          return <HomeGuestPage />;
        }
      }}
    />
  );
};

export default PrivateRoute;