blob: 8fafc02e33bccf8f5cbbfd80777d7730340cdf1b (
plain)
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
49
50
51
|
import React, { ReactElement } from "react";
import { BrowserRouter, Route, Routes } from "react-router-dom";
import AppBar from "./views/common/AppBar";
import LoadingPage from "./views/common/LoadingPage";
import Center from "./views/center";
import Home from "./views/home";
import Login from "./views/login";
import Register from "./views/register";
import Settings from "./views/settings";
import About from "./views/about";
import TimelinePage from "./views/timeline";
import Search from "./views/search";
import Admin from "./views/admin";
import AlertHost from "./views/common/alert/AlertHost";
import { useUser } from "./services/user";
const NoMatch: React.FC = () => {
return <div>Ah-oh, 404!</div>;
};
function App(): ReactElement | null {
const user = useUser();
return (
<React.Suspense fallback={<LoadingPage />}>
<BrowserRouter>
<AppBar />
<div style={{ height: 56 }} />
<Routes>
<Route index element={user == null ? <Home /> : <Center />} />
<Route path="/home" element={<Home />} />
<Route path="/center" element={<Center />} />
<Route path="/login" element={<Login />} />
<Route path="/register" element={<Register />} />
<Route path="/settings" element={<Settings />} />
<Route path="/about" element={<About />} />
<Route path="/search" element={<Search />} />
<Route path="/admin" element={<Admin />} />
<Route path="/:owner" element={<TimelinePage />} />
<Route path="/:owner/:timeline" element={<TimelinePage />} />
<Route element={<NoMatch />} />
</Routes>
<AlertHost />
</BrowserRouter>
</React.Suspense>
);
}
export default App;
|