mirror of
https://github.com/hanzoai/shadcn.git
synced 2026-11-03 03:18:52 +00:00
14 lines
1.4 KiB
JSON
14 lines
1.4 KiB
JSON
{
|
|
"name": "avatar-group",
|
|
"description": "Grouped avatar display",
|
|
"registryDependencies": [
|
|
"avatar"
|
|
],
|
|
"files": [
|
|
{
|
|
"name": "avatar-group.tsx",
|
|
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/default/ui/avatar\"\n\nexport interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n items: Array<{\n src?: string\n alt?: string\n fallback: string\n }>\n max?: number\n}\n\nconst AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, items, max = 5, ...props }, ref) => {\n const displayItems = items.slice(0, max)\n const remaining = items.length - max\n\n return (\n <div ref={ref} className={cn(\"flex -space-x-4\", className)} {...props}>\n {displayItems.map((item, index) => (\n <Avatar key={index} className=\"border-2 border-background\">\n <AvatarImage src={item.src} alt={item.alt} />\n <AvatarFallback>{item.fallback}</AvatarFallback>\n </Avatar>\n ))}\n {remaining > 0 && (\n <Avatar className=\"border-2 border-background\">\n <AvatarFallback>+{remaining}</AvatarFallback>\n </Avatar>\n )}\n </div>\n )\n }\n)\nAvatarGroup.displayName = \"AvatarGroup\"\n\nexport { AvatarGroup }\n"
|
|
}
|
|
],
|
|
"type": "components:ui"
|
|
} |