From d0a315c365cebbfc1bd2df940c66d64eb9b56ba7 Mon Sep 17 00:00:00 2001 From: Andy Chan Date: Tue, 5 Nov 2024 19:52:09 -0500 Subject: [PATCH] Keep Sidebar fixed + refactor Sidebar.tsx (#38) * Refactor Sidebar.tsx (for /resource) Will look weird on other pages. * Move sidebar open button into Sidebar.tsx, apply to other pages Significantly reduces boilerplate of sidebar on pages where it is used. * Set sidebar to be open by default * Minor code formatting --- compass/app/admin/layout.tsx | 38 ++----- compass/app/home/layout.tsx | 38 ++----- compass/app/resource/layout.tsx | 38 ++----- compass/app/service/layout.tsx | 38 ++----- compass/components/Sidebar/Sidebar.tsx | 140 +++++++++++++++---------- 5 files changed, 117 insertions(+), 175 deletions(-) diff --git a/compass/app/admin/layout.tsx b/compass/app/admin/layout.tsx index 78bf6a6..490f601 100644 --- a/compass/app/admin/layout.tsx +++ b/compass/app/admin/layout.tsx @@ -2,7 +2,6 @@ import Sidebar from "@/components/Sidebar/Sidebar"; import React, { useState } from "react"; -import { ChevronDoubleRightIcon } from "@heroicons/react/24/outline"; import { createClient } from "@/utils/supabase/client"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; @@ -14,7 +13,7 @@ export default function RootLayout({ }: { children: React.ReactNode; }) { - const [isSidebarOpen, setIsSidebarOpen] = useState(false); + const [isSidebarOpen, setIsSidebarOpen] = useState(true); const router = useRouter(); const [user, setUser] = useState(); @@ -56,34 +55,13 @@ export default function RootLayout({
{user ? (
- {/* button to open sidebar */} - - {/* sidebar */} -
- -
- {/* page ui */} +
(); const router = useRouter(); @@ -45,34 +44,13 @@ export default function RootLayout({
{user ? (
- {/* button to open sidebar */} - - {/* sidebar */} -
- -
- {/* page ui */} +
(); @@ -48,33 +47,14 @@ export default function RootLayout({
{user ? (
- {/* button to open sidebar */} - - {/* sidebar */} -
- -
+ + {/*
*/} {/* page ui */}
(); @@ -48,34 +47,13 @@ export default function RootLayout({
{user ? (
- {/* button to open sidebar */} - - {/* sidebar */} -
- -
- {/* page ui */} +
>; + isSidebarOpen: boolean; name: string; email: string; isAdmin: boolean; @@ -19,70 +21,96 @@ interface SidebarProps { const Sidebar: React.FC = ({ setIsSidebarOpen, + isSidebarOpen, name, email, isAdmin: admin, }) => { return ( -
- {/* button to close sidebar */} -
- -
-
- {/* user + logout button */} -
- -
- {/* navigation menu */} -
-

- Pages -

- + {/* The sidebar itself. */} +
+ {/* Button to close sidebar */} +
+ +
+ +
+ {/* user + logout button */} +
+ +
+ {/* navigation menu */} +
+

+ Pages +

+ +
-
+ ); };