source: frontend/src/App.tsx@ 2ce7c1e

main
Last change on this file since 2ce7c1e 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
RevLine 
[cb4a1da]1import { useState } from "react";
[0c86e77]2import { createBrowserRouter, Outlet, RouterProvider } from "react-router-dom";
[b70fbeb]3import { ToastContainer } from "react-toastify";
4import "react-toastify/dist/ReactToastify.css";
[cb4a1da]5import Sidebar from "./components/Sidebar";
[4e5cf92]6import AllUsers from "./pages/AllUsers";
7import LandingPage from "./pages/LandingPage";
8import Login from "./pages/Login";
[cb4a1da]9import MusicalCollection from "./pages/MusicalCollection";
[4e5cf92]10import Nav from "./pages/Nav";
11import Register from "./pages/Register";
[2730163]12import UserDetail from "./pages/UserDetail";
[15ec67f]13
[0c86e77]14const Layout = () => {
[cb4a1da]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 );
[0c86e77]45};
46
47const router = createBrowserRouter([
[cb4a1da]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 },
[0c86e77]78]);
79
80function App() {
[cb4a1da]81 return <RouterProvider router={router} />;
[15ec67f]82}
83
84export default App;
Note: See TracBrowser for help on using the repository browser.