From b36eea8c579ed542c88a914d0b44c52e9d92b0f5 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sat, 12 Oct 2024 18:12:32 +0000 Subject: [PATCH] feature(web): Implement a new profile options drop menu and move user and admin settings there --- .../components/dashboard/header/Header.tsx | 42 +------------------ .../dashboard/header/ProfileOptions.tsx | 31 +++++++++++++- .../dashboard/sidebar/ModileSidebar.tsx | 5 +-- .../components/dashboard/sidebar/Sidebar.tsx | 2 +- 4 files changed, 32 insertions(+), 48 deletions(-) diff --git a/apps/web/components/dashboard/header/Header.tsx b/apps/web/components/dashboard/header/Header.tsx index 11e3b3c3..b145683d 100644 --- a/apps/web/components/dashboard/header/Header.tsx +++ b/apps/web/components/dashboard/header/Header.tsx @@ -1,18 +1,10 @@ -import React from "react"; import Link from "next/link"; import { redirect } from "next/navigation"; import GlobalActions from "@/components/dashboard/GlobalActions"; import ProfileOptions from "@/components/dashboard/header/ProfileOptions"; import { SearchInput } from "@/components/dashboard/search/SearchInput"; import HoarderLogo from "@/components/HoarderIcon"; -import { Button } from "@/components/ui/button"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "@/components/ui/tooltip"; import { getServerAuthSession } from "@/server/auth"; -import { Settings, Shield } from "lucide-react"; export default async function Header() { const session = await getServerAuthSession(); @@ -20,26 +12,6 @@ export default async function Header() { redirect("/"); } - const adminItem = - session.user.role == "admin" - ? [ - { - name: "Admin", - icon: , - path: "/dashboard/admin", - }, - ] - : []; - - const headerItems = [ - ...adminItem, - { - name: "Settings", - icon: , - path: "/dashboard/settings", - }, - ]; - return (
@@ -51,19 +23,7 @@ export default async function Header() {
-
- {headerItems.map((item) => ( - - - - - {item.name} - - ))} +
diff --git a/apps/web/components/dashboard/header/ProfileOptions.tsx b/apps/web/components/dashboard/header/ProfileOptions.tsx index df31171c..ea8c7d12 100644 --- a/apps/web/components/dashboard/header/ProfileOptions.tsx +++ b/apps/web/components/dashboard/header/ProfileOptions.tsx @@ -10,7 +10,8 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { LogOut, Moon, Paintbrush, Sun } from "lucide-react"; +import { Separator } from "@/components/ui/separator"; +import { LogOut, Moon, Paintbrush, Settings, Shield, Sun } from "lucide-react"; import { signOut, useSession } from "next-auth/react"; import { useTheme } from "next-themes"; @@ -49,7 +50,32 @@ export default function SidebarProfileOptions() { {session.user.name?.charAt(0) ?? "U"} - + +
+
+ {session.user.name?.charAt(0) ?? "U"} +
+
+

{session.user.name}

+

{session.user.email}

+
+
+ + + + + User Settings + + + {session.user.role == "admin" && ( + + + + Admin Settings + + + )} + @@ -59,6 +85,7 @@ export default function SidebarProfileOptions() { + signOut({ diff --git a/apps/web/components/dashboard/sidebar/ModileSidebar.tsx b/apps/web/components/dashboard/sidebar/ModileSidebar.tsx index 1117dd61..7ccf6b8d 100644 --- a/apps/web/components/dashboard/sidebar/ModileSidebar.tsx +++ b/apps/web/components/dashboard/sidebar/ModileSidebar.tsx @@ -1,6 +1,5 @@ -import ProfileOptions from "@/components/dashboard/header/ProfileOptions"; import HoarderLogoIcon from "@/public/icons/logo-icon.svg"; -import { ClipboardList, Search, Settings, Tag } from "lucide-react"; +import { ClipboardList, Search, Tag } from "lucide-react"; import MobileSidebarItem from "./ModileSidebarItem"; @@ -15,8 +14,6 @@ export default async function MobileSidebar() { } path="/dashboard/search" /> } path="/dashboard/lists" /> } path="/dashboard/tags" /> - } path="/dashboard/settings" /> - ); diff --git a/apps/web/components/dashboard/sidebar/Sidebar.tsx b/apps/web/components/dashboard/sidebar/Sidebar.tsx index 13260e07..14d019ff 100644 --- a/apps/web/components/dashboard/sidebar/Sidebar.tsx +++ b/apps/web/components/dashboard/sidebar/Sidebar.tsx @@ -66,7 +66,7 @@ export default async function Sidebar() { -
+
Hoarder v{serverConfig.serverVersion}