From d9c74d25ab1f4e13cb980074e188ef6125d2d290 Mon Sep 17 00:00:00 2001
From: eug-vs <eug-vs@keemail.me>
Date: Fri, 7 Aug 2020 21:53:48 +0300
Subject: feat: setup initial routing

---
 src/pages/Page.tsx | 46 +++++++++++++++++++++++++++++++---------------
 1 file changed, 31 insertions(+), 15 deletions(-)

(limited to 'src/pages/Page.tsx')

diff --git a/src/pages/Page.tsx b/src/pages/Page.tsx
index 56d7372..62b6b61 100644
--- a/src/pages/Page.tsx
+++ b/src/pages/Page.tsx
@@ -2,6 +2,7 @@ import React from 'react';
 import { makeStyles, useTheme } from '@material-ui/core/styles';
 import { useMediaQuery } from '@material-ui/core';
 import { SnackbarProvider } from 'notistack';
+import { BrowserRouter, Switch, Route } from 'react-router-dom';
 
 import ProfilePage from './ProfilePage/ProfilePage';
 import FeedPage from './FeedPage/FeedPage';
@@ -9,6 +10,7 @@ import AuthPage from './AuthPage/AuthPage';
 import HomePage from './HomePage/HomePage';
 import NotificationsPage from './NotificationsPage/NotificationsPage';
 import { useNavigate } from '../hooks/useNavigate';
+import PrivateRoute from './PrivateRoute';
 
 
 const useStyles = makeStyles(theme => ({
@@ -22,6 +24,16 @@ const useStyles = makeStyles(theme => ({
   }
 }));
 
+
+const urls = {
+  home: '/',
+  login: '/login',
+  registration: '/registration',
+  profile: '/profile',
+  feed: '/feed',
+  notifications: '/notifications'
+};
+
 const Page: React.FC = () => {
   const { page } = useNavigate();
   const classes = useStyles();
@@ -29,21 +41,25 @@ const Page: React.FC = () => {
   const isMobile = useMediaQuery(theme.breakpoints.down('sm'));
 
   return (
-    <SnackbarProvider
-      maxSnack={3}
-      anchorOrigin={{
-        vertical: isMobile ? 'top' : 'bottom',
-        horizontal: 'right'
-      }}
-    >
-      <div className={classes.root}>
-        { page.prefix === 'home' && <HomePage />}
-        { page.prefix === 'profile' && <ProfilePage />}
-        { page.prefix === 'feed' && <FeedPage /> }
-        { page.prefix === 'auth' && <AuthPage /> }
-        { page.prefix === 'notifications' && <NotificationsPage /> }
-      </div>
-    </SnackbarProvider>
+    <BrowserRouter>
+      <SnackbarProvider
+        maxSnack={3}
+        anchorOrigin={{
+          vertical: isMobile ? 'top' : 'bottom',
+          horizontal: 'right'
+        }}
+      >
+        <div className={classes.root}>
+          <Switch>
+            <PrivateRoute exact path={urls.home} component={HomePage} />
+            <PrivateRoute exact path={urls.login} component={AuthPage} />
+            <PrivateRoute exact path={urls.registration} component={AuthPage} />
+            <PrivateRoute exact path={urls.feed} component={FeedPage} />
+            <PrivateRoute exact path={urls.notifications} component={NotificationsPage} />
+          </Switch>
+        </div>
+      </SnackbarProvider>
+    </BrowserRouter>
   );
 };
 
-- 
cgit v1.2.3

