'use client' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu' import { Button } from '@/components/ui/button' import { Badge } from '@/components/ui/badge' import { Tag } from 'lucide-react' import { cn } from '@/lib/utils' import { useLabels } from '@/context/LabelContext' import { LabelBadge } from './label-badge' interface LabelSelectorProps { selectedLabels: string[] onLabelsChange: (labels: string[]) => void variant?: 'default' | 'compact' triggerLabel?: string align?: 'start' | 'center' | 'end' } export function LabelSelector({ selectedLabels, onLabelsChange, variant = 'default', triggerLabel = 'Tags', align = 'start', }: LabelSelectorProps) { const { labels, loading } = useLabels() const handleToggleLabel = (labelName: string) => { if (selectedLabels.includes(labelName)) { onLabelsChange(selectedLabels.filter((l) => l !== labelName)) } else { onLabelsChange([...selectedLabels, labelName]) } } return (
{loading ? (
Loading...
) : labels.length === 0 ? (
No labels yet
) : ( labels.map((label) => { const isSelected = selectedLabels.includes(label.name) return ( handleToggleLabel(label.name)} className="flex items-center justify-between gap-2" > ) }) )}
) }