source: frontend/src/App.tsx@ cb4a1da

main
Last change on this file since cb4a1da was cb4a1da, checked in by Filip Gavrilovski <filipgavrilovski28@…>, 5 months ago

add working server side search to landing page; change some endpoints

  • Property mode set to 100644
File size: 1.8 KB
Line 
1import { useState } from "react";
2import { createBrowserRouter, Outlet, RouterProvider } from "react-router-dom";
3import { ToastContainer } from "react-toastify";
4import "react-toastify/dist/ReactToastify.css";
5import Sidebar from "./components/Sidebar";
6import AllUsers from "./pages/AllUsers";
7import LandingPage from "./pages/LandingPage";
8import Login from "./pages/Login";
9import MusicalCollection from "./pages/MusicalCollection";
10import Nav from "./pages/Nav";
11import Register from "./pages/Register";
12import UserDetail from "./pages/UserDetail";
13
14const Layout = () => {
15 const [isSidebarOpen, setIsSidebarOpen] = useState(true);
16
17 return (
18 <div className="flex flex-col min-h-screen bg-[#121212]">
19 <Nav
20 isSidebarOpen={isSidebarOpen}
21 onToggleSidebar={() => setIsSidebarOpen(!isSidebarOpen)}
22 />
23 <Sidebar isOpen={isSidebarOpen} onClose={() => setIsSidebarOpen(false)} />
24 <ToastContainer
25 position="top-right"
26 autoClose={2000}
27 hideProgressBar={false}
28 newestOnTop={false}
29 closeOnClick
30 rtl={false}
31 pauseOnFocusLoss
32 draggable
33 pauseOnHover
34 theme="light"
35 />
36 <main
37 className={`grow transition-all duration-300 pt-20 ${
38 isSidebarOpen ? "ml-64" : "ml-0"
39 }`}
40 >
41 <Outlet />
42 </main>
43 </div>
44 );
45};
46
47const router = createBrowserRouter([
48 {
49 path: "",
50 element: <Layout />,
51 children: [
52 {
53 path: "/",
54 element: <LandingPage />,
55 },
56 {
57 path: "/login",
58 element: <Login />,
59 },
60 {
61 path: "/users",
62 element: <AllUsers />,
63 },
64 {
65 path: "/users/:username",
66 element: <UserDetail />,
67 },
68 {
69 path: "/register",
70 element: <Register />,
71 },
72 {
73 path: "/collection/:type/:id",
74 element: <MusicalCollection />,
75 },
76 ],
77 },
78]);
79
80function App() {
81 return <RouterProvider router={router} />;
82}
83
84export default App;
Note: See TracBrowser for help on using the repository browser.