diff --git a/src/components/app-header.tsx b/src/components/app-header.tsx index 2372c0d..0eb067c 100644 --- a/src/components/app-header.tsx +++ b/src/components/app-header.tsx @@ -1,9 +1,13 @@ -import { Link } from "@tanstack/react-router"; +import { Link, useNavigate } from "@tanstack/react-router"; +import { useState } from "react"; import { cn } from "cn"; +import { LogOut, UserRound } from "lucide-react"; +import { Popover } from "radix-ui"; import { authClient } from "@/auth/client"; import { type IdpAccess, useIdpAccess } from "@/components/idp-access"; import { firstAccessTab } from "@/components/rbac/access-tabs"; import { ThemeSwitch } from "@/components/theme-switch"; +import { Button } from "@/components/ui/button"; import { UserAvatar } from "@/components/user-avatar"; type Section = "account" | "users" | "applications" | "access"; @@ -74,14 +78,79 @@ export function AppHeader({ active, access }: { active: Section; access?: IdpAcc
- {session && ( -
- -
- )} + {session && }
{nav("flex gap-1 overflow-x-auto px-5 pb-3 sm:hidden")} ); } + +function AccountMenu({ user }: { user: { name: string; email: string; image?: string | null } }) { + const navigate = useNavigate(); + const [open, setOpen] = useState(false); + const [error, setError] = useState(null); + return ( + { + setOpen(next); + if (!next) setError(null); + }} + > + + + + + +
+
+ +
+
+

{user.name}

+

{user.email}

+
+
+
+ + +
+ {error && ( +

+ {error} +

+ )} +
+
+
+ ); +}