'use client' import { ArrowDown, ArrowUp } from 'lucide-react' import { Button } from '@/components/ui/button' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { cn } from '@/lib/utils' import { debugProps } from '@/lib/debug' export const PRIORITY_LABELS: Record = { 1: 'Kritiek', 2: 'Hoog', 3: 'Gemiddeld', 4: 'Laag', } export const PRIORITY_OPTIONS: Array<{ value: number | 'all'; label: string }> = [ { value: 'all', label: 'Alle' }, { value: 1, label: 'Kritiek' }, { value: 2, label: 'Hoog' }, { value: 3, label: 'Gemiddeld' }, { value: 4, label: 'Laag' }, ] export type SortDir = 'asc' | 'desc' export function FilterPills({ label, options, value, onChange, }: { label: string options: Array<{ value: T; label: string }> value: T onChange: (v: T) => void }) { return (

{label}

{options.map((opt) => ( ))}
) } interface BacklogFilterPopoverProps { open: boolean onOpenChange: (open: boolean) => void filterPriority: number | 'all' onFilterPriorityChange: (v: number | 'all') => void filterStatus: S onFilterStatusChange: (v: S) => void statusOptions: Array<{ value: S; label: string }> sort: So onSortChange: (v: So) => void sortDir: SortDir onSortDirChange: (v: SortDir) => void sortOptions: Array<{ value: So; label: string }> activeFilterCount: number onReset: () => void resetDisabled: boolean } export function BacklogFilterPopover({ open, onOpenChange, filterPriority, onFilterPriorityChange, filterStatus, onFilterStatusChange, statusOptions, sort, onSortChange, sortDir, onSortDirChange, sortOptions, activeFilterCount, onReset, resetDisabled, }: BacklogFilterPopoverProps) { return ( {`Filters${activeFilterCount > 0 ? ` (${activeFilterCount})` : ''}`} } />

Sorteren op

{sortOptions.map((opt) => { const active = sort === opt.value return ( ) })}
) }