summaryrefslogtreecommitdiffhomepage
path: root/frontend/src/routes/index.tsx
blob: cee35297f1e8d0155fe11f812db43934e5f1d113 (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
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import { useState } from "react";
import Home from "../pages/Home";
import Layout from "../components/Layout";
import Article from "../pages/articles/Article";
import NewArticle from "../pages/articles/New";
import Register from "../pages/auth/Register";
import Login from "../pages/auth/Login";

type user = {
  set: React.Dispatch<React.SetStateAction<string | null>>;
  value: string | null;
};
type articleSearch = user;

export default function Index() {
  const [user, setUser] = useState<string | null>(null);
  const [articleSearch, setArticleSearch] = useState<string | null>(null);

  const userProp: user = { set: setUser, value: user };
  const articleSearchProp: articleSearch = {
    set: setArticleSearch,
    value: articleSearch,
  };

  return (
    <>
      <Router>
        <Routes>
          <Route
            path="/"
            element={
              <Layout user={userProp} articleSearch={articleSearchProp} />
            }
          >
            <Route index element={<Home articleSearch={articleSearchProp} />} />
            <Route path="/article/:id" element={<Article />} />
            <Route path="/article/new" element={<NewArticle />} />
            <Route path="register" element={<Register />} />
            <Route path="login" element={<Login user={userProp} />} />
          </Route>
        </Routes>
      </Router>
    </>
  );
}