feat: enhance UserInfo component to conditionally display user details
This commit is contained in:
parent
eaa2662eed
commit
53fc170a7e
@ -1,5 +1,4 @@
|
|||||||
import { usePage } from '@inertiajs/react';
|
import { usePage } from '@inertiajs/react';
|
||||||
import { ChevronsUpDown } from 'lucide-react';
|
|
||||||
import {
|
import {
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
DropdownMenuContent,
|
DropdownMenuContent,
|
||||||
@ -31,11 +30,10 @@ export function NavUser() {
|
|||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<SidebarMenuButton
|
<SidebarMenuButton
|
||||||
size="lg"
|
size="lg"
|
||||||
className="group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent"
|
className="group hover:bg-transparent data-[state=open]:bg-transparent"
|
||||||
data-test="sidebar-menu-button"
|
data-test="sidebar-menu-button"
|
||||||
>
|
>
|
||||||
<UserInfo user={auth.user} />
|
<UserInfo user={auth.user} showDetails={false} />
|
||||||
<ChevronsUpDown className="ml-auto size-4" />
|
|
||||||
</SidebarMenuButton>
|
</SidebarMenuButton>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent
|
<DropdownMenuContent
|
||||||
|
|||||||
@ -5,9 +5,11 @@ import type { User } from '@/types';
|
|||||||
export function UserInfo({
|
export function UserInfo({
|
||||||
user,
|
user,
|
||||||
showEmail = false,
|
showEmail = false,
|
||||||
|
showDetails = true,
|
||||||
}: {
|
}: {
|
||||||
user: User;
|
user: User;
|
||||||
showEmail?: boolean;
|
showEmail?: boolean;
|
||||||
|
showDetails?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const getInitials = useInitials();
|
const getInitials = useInitials();
|
||||||
|
|
||||||
@ -19,14 +21,16 @@ export function UserInfo({
|
|||||||
{getInitials(user.name)}
|
{getInitials(user.name)}
|
||||||
</AvatarFallback>
|
</AvatarFallback>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
<div className="grid flex-1 text-left text-sm leading-tight">
|
{showDetails && (
|
||||||
<span className="truncate font-medium">{user.name}</span>
|
<div className="grid flex-1 text-left text-sm leading-tight">
|
||||||
{showEmail && (
|
<span className="truncate font-medium">{user.name}</span>
|
||||||
<span className="truncate text-xs text-muted-foreground">
|
{showEmail && (
|
||||||
{user.email}
|
<span className="truncate text-xs text-muted-foreground">
|
||||||
</span>
|
{user.email}
|
||||||
)}
|
</span>
|
||||||
</div>
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user