MCPcopy Index your code
hub / github.com/fastapi/full-stack-fastapi-template / User

Function User

frontend/src/components/Sidebar/User.tsx:43–97  ·  view source on GitHub ↗
({ user }: { user: any })

Source from the content-addressed store, hash-verified

41}
42
43export function User({ user }: { user: any }) {
44 const { logout } = useAuth()
45 const { isMobile, setOpenMobile } = useSidebar()
46
47 if (!user) return null
48
49 const handleMenuClick = () => {
50 if (isMobile) {
51 setOpenMobile(false)
52 }
53 }
54 const handleLogout = async () => {
55 logout()
56 }
57
58 return (
59 <SidebarMenu>
60 <SidebarMenuItem>
61 <DropdownMenu>
62 <DropdownMenuTrigger asChild>
63 <SidebarMenuButton
64 size="lg"
65 className="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
66 data-testid="user-menu"
67 >
68 <UserInfo fullName={user?.full_name} email={user?.email} />
69 <ChevronsUpDown className="ml-auto size-4 text-muted-foreground" />
70 </SidebarMenuButton>
71 </DropdownMenuTrigger>
72 <DropdownMenuContent
73 className="w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg"
74 side={isMobile ? "bottom" : "right"}
75 align="end"
76 sideOffset={4}
77 >
78 <DropdownMenuLabel className="p-0 font-normal">
79 <UserInfo fullName={user?.full_name} email={user?.email} />
80 </DropdownMenuLabel>
81 <DropdownMenuSeparator />
82 <RouterLink to="/settings" onClick={handleMenuClick}>
83 <DropdownMenuItem>
84 <Settings />
85 User Settings
86 </DropdownMenuItem>
87 </RouterLink>
88 <DropdownMenuItem onClick={handleLogout}>
89 <LogOut />
90 Log Out
91 </DropdownMenuItem>
92 </DropdownMenuContent>
93 </DropdownMenu>
94 </SidebarMenuItem>
95 </SidebarMenu>
96 )
97}

Callers

nothing calls this directly

Calls 2

useSidebarFunction · 0.90
useAuthFunction · 0.85

Tested by

no test coverage detected