import { MoreHorizontalIcon } from "lucide-react"
import { Badge } from "@/components/ui/reui-item-utils/badge"
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@/components/ui/reui-item-utils/avatar"
import { Button } from "@/components/ui/reui-item-utils/button"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/reui-item-utils/dropdown-menu"
import {
Item,
ItemActions,
ItemContent,
ItemDescription,
ItemGroup,
ItemMedia,
ItemSeparator,
ItemTitle,
} from "@/components/ui/reui-item"
const members = [
{
name: "Sarah Chen",
email: "sarah@example.com",
avatar:
"https://cdn.21st.dev/assets/mirror/f1/f196c8f46bd52c8e1ccb3d53dbe00ea28047a7d07ad42015b139b9b7a21ddcdc.jpg",
role: "Admin",
roleVariant: "default" as const,
},
{
name: "Alex Johnson",
email: "alex@example.com",
avatar:
"https://cdn.21st.dev/assets/mirror/7a/7a441860d9b014f1d071006b567655c4fa0d3f45a693dcaa6a765ccd5953f7f0.jpg",
role: "Editor",
roleVariant: "info-light" as const,
},
{
name: "Emily Park",
email: "emily@example.com",
avatar:
"https://cdn.21st.dev/assets/mirror/cf/cf727f6ea4acac46e0f96d1d217b8a0d72a669d9c1a2c2721bfd478a07c1d810.jpg",
role: "Viewer",
roleVariant: "outline" as const,
},
]
export default function Pattern() {
return (
<div className="mx-auto flex w-full max-w-md flex-col">
<ItemGroup>
{members.map((member, index) => (
<div key={member.email}>
<Item variant="outline" size="xs">
<ItemMedia>
<Avatar>
<AvatarImage src={member.avatar} alt={member.name} />
<AvatarFallback>
{member.name
.split(" ")
.map((n) => n[0])
.join("")}
</AvatarFallback>
</Avatar>
</ItemMedia>
<ItemContent>
<ItemTitle>{member.name}</ItemTitle>
<ItemDescription>{member.email}</ItemDescription>
</ItemContent>
<ItemActions>
<Badge variant={member.roleVariant} size="sm">
{member.role}
</Badge>
<DropdownMenu>
<DropdownMenuTrigger
render={
<Button
variant="ghost"
size="icon"
className="ml-1 size-7"
/>
}
>
<MoreHorizontalIcon />
<span className="sr-only">Actions</span>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem>Change Role</DropdownMenuItem>
<DropdownMenuItem>View Profile</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem variant="destructive">
Remove
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</ItemActions>
</Item>
</div>
))}
</ItemGroup>
</div>
)
}