From 84232b5a475ccefa56a1e1bd5eedcb3cbdbe7365 Mon Sep 17 00:00:00 2001 From: Aaron Po Date: Sat, 12 Sep 2026 15:09:35 -0400 Subject: [PATCH] Link user menu to the signed-in user's profile page --- .../app/components/ui/navbar/Navbar.stories.tsx | 1 + web/frontend/app/components/ui/navbar/Navbar.tsx | 5 ++++- web/frontend/app/components/ui/navbar/UserMenu.tsx | 10 +++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/web/frontend/app/components/ui/navbar/Navbar.stories.tsx b/web/frontend/app/components/ui/navbar/Navbar.stories.tsx index a5744a24..00e660c2 100644 --- a/web/frontend/app/components/ui/navbar/Navbar.stories.tsx +++ b/web/frontend/app/components/ui/navbar/Navbar.stories.tsx @@ -47,6 +47,7 @@ export const Authenticated: Story = { const userButton = canvas.getByRole('button', { name: /hans/i }); await expect(userButton).toBeInTheDocument(); await userEvent.click(userButton); + await expect(canvas.getByRole('menuitem', { name: /my profile/i })).toBeInTheDocument(); await expect(canvas.getByRole('menuitem', { name: /dashboard/i })).toBeInTheDocument(); await expect(canvas.getByRole('menuitem', { name: /logout/i })).toBeInTheDocument(); }, diff --git a/web/frontend/app/components/ui/navbar/Navbar.tsx b/web/frontend/app/components/ui/navbar/Navbar.tsx index 1583b794..b781b464 100644 --- a/web/frontend/app/components/ui/navbar/Navbar.tsx +++ b/web/frontend/app/components/ui/navbar/Navbar.tsx @@ -72,7 +72,10 @@ const Navbar = ({ auth }: NavbarProps) => ( Dashboard - + ) : ( diff --git a/web/frontend/app/components/ui/navbar/UserMenu.tsx b/web/frontend/app/components/ui/navbar/UserMenu.tsx index 7f9f8809..0fbf2246 100644 --- a/web/frontend/app/components/ui/navbar/UserMenu.tsx +++ b/web/frontend/app/components/ui/navbar/UserMenu.tsx @@ -3,12 +3,20 @@ import { Link } from 'react-router'; interface UserMenuProps { username: string; + userAccountId: string; } -const UserMenu = ({ username }: UserMenuProps) => ( +const UserMenu = ({ username, userAccountId }: UserMenuProps) => ( {username} + + {({ focus }) => ( + + My profile + + )} + {({ focus }) => (