diff --git a/src/App.tsx b/src/App.tsx
index 365cc2a..1145618 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,10 +1,10 @@
import jwtDecode from 'jwt-decode';
import { useEffect } from 'react';
-import { Routes, Navigate } from 'react-router-dom';
+import { Routes, Route, Navigate } from 'react-router-dom';
import { useLazyQuery, useReactiveVar } from '@apollo/client';
import {
- ProtectedRoute,
- PublicRoute,
+ Protected,
+ Public,
Navbar,
Sidebar,
Spinner,
@@ -91,109 +91,271 @@ const App = () => {
>
)}
-
+
{role !== 'admin' ? (
) : (
)}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ } />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
>
) : (
diff --git a/src/components/Protected/index.tsx b/src/components/Protected/index.tsx
new file mode 100644
index 0000000..04abfe3
--- /dev/null
+++ b/src/components/Protected/index.tsx
@@ -0,0 +1,19 @@
+import { useReactiveVar } from '@apollo/client';
+import { Navigate } from 'react-router-dom';
+import { tokenVar } from '../../graphql/state';
+
+type Props = {
+ children: React.ReactNode;
+};
+
+const Protected = ({ children }: Props) => {
+ const token = useReactiveVar(tokenVar);
+
+ return (
+ <>
+ {token ? children : }
+ >
+ );
+};
+
+export default Protected;
diff --git a/src/components/ProtectedRoute/index.tsx b/src/components/ProtectedRoute/index.tsx
deleted file mode 100644
index 4e0b81a..0000000
--- a/src/components/ProtectedRoute/index.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import { useReactiveVar } from '@apollo/client';
-import { Navigate, Route, RouteProps } from 'react-router-dom';
-import { tokenVar } from '../../graphql/state';
-
-const ProtectedRoute: React.FC = ({ children, ...rest }) => {
- const token = useReactiveVar(tokenVar);
-
- return (
- } />
- );
-};
-
-export default ProtectedRoute;
diff --git a/src/components/Public/index.tsx b/src/components/Public/index.tsx
new file mode 100644
index 0000000..fac62d5
--- /dev/null
+++ b/src/components/Public/index.tsx
@@ -0,0 +1,19 @@
+import { useReactiveVar } from '@apollo/client';
+import { Navigate } from 'react-router-dom';
+import { tokenVar } from '../../graphql/state';
+
+type Props = {
+ children: React.ReactNode;
+};
+
+const Public = ({ children }: Props) => {
+ const token = useReactiveVar(tokenVar);
+
+ return (
+ <>
+ {!token ? children : }
+ >
+ );
+};
+
+export default Public;
diff --git a/src/components/PublicRoute/index.tsx b/src/components/PublicRoute/index.tsx
deleted file mode 100644
index 815693c..0000000
--- a/src/components/PublicRoute/index.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { useReactiveVar } from '@apollo/client';
-import { Navigate, Route, RouteProps } from 'react-router-dom';
-import { tokenVar } from '../../graphql/state';
-
-const PublicRoute: React.FC = ({ children, ...rest }) => {
- const token = useReactiveVar(tokenVar);
-
- return } />;
-};
-
-export default PublicRoute;
diff --git a/src/components/index.tsx b/src/components/index.tsx
index eb55e63..bb8929c 100644
--- a/src/components/index.tsx
+++ b/src/components/index.tsx
@@ -15,8 +15,8 @@ import CheckBox from './CheckBox';
import Menu from './Menu';
import Navbar from './Navbar';
import Sidebar from './Sidebar';
-import ProtectedRoute from './ProtectedRoute';
-import PublicRoute from './PublicRoute';
+import Protected from './Protected';
+import Public from './Public';
import SectionSelector from './SectionSelector';
import Modal from './Modal';
import SidebarItem from './SidebarItem';
@@ -48,8 +48,8 @@ export {
CheckBox,
Navbar,
Sidebar,
- ProtectedRoute,
- PublicRoute,
+ Protected,
+ Public,
SectionSelector,
Modal,
SidebarItem,