This repository has been archived by the owner on Jun 25, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMain.tsx
48 lines (45 loc) · 2.14 KB
/
Main.tsx
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import React from "react";
import { Routes, Route, Navigate, useLocation } from "react-router-dom";
import { useAppSelector } from "./redux/hooks";
import Navbar from "./components/Navbar";
import LoginPage from "./pages/login/LoginPage";
import NftsPage from "./pages/nfts/NftsPage";
import NftPage from "./pages/nfts/NftPage";
import UsersPage from "./pages/users/UsersPage";
import UserPage from "./pages/users/UserPage";
import PostsPage from "./pages/posts/PostsPage";
import PostPage from "./pages/posts/PostPage";
export default function Main() {
const { loggedIn } = useAppSelector(state => state.user);
const location = useLocation();
console.log("loggedIn", loggedIn);
return (
<div id="main-container">
{loggedIn && <Navbar />}
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route path="/" element={
loggedIn ? <NftsPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
<Route path="/nfts" element={
loggedIn ? <NftsPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
<Route path="/nft/:tokenId" element={
loggedIn ? <NftPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
<Route path="/users" element={
loggedIn ? <UsersPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
<Route path="/user/:userAddress" element={
loggedIn ? <UserPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
<Route path="/posts" element={
loggedIn ? <PostsPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
<Route path="/post/:postId" element={
loggedIn ? <PostPage /> : <Navigate to="/login" state={{ from: location }} replace={true} />
} />
</Routes>
</div>
);
}