"use client"; import { useState } from "react"; import { Badge, badgeVariants } from "@app/components/ui/badge"; import { Popover, PopoverContent, PopoverTrigger } from "@app/components/ui/popover"; import { cn } from "@app/lib/cn"; const MAX_ROLE_BADGES = 3; export default function UserRoleBadges({ roleLabels }: { roleLabels: string[]; }) { const visible = roleLabels.slice(0, MAX_ROLE_BADGES); const overflow = roleLabels.slice(MAX_ROLE_BADGES); return (
{visible.map((label, i) => ( {label} ))} {overflow.length > 0 && ( )}
); } function OverflowRolesPopover({ labels }: { labels: string[] }) { const [open, setOpen] = useState(false); return ( setOpen(true)} onMouseLeave={() => setOpen(false)} > ); }