"use client" import type * as React from "react" import { CheckIcon, PlusCircledIcon } from "@radix-ui/react-icons" import type { Column } from "@tanstack/react-table" import { cn } from "@/lib/utils" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, } from "@/components/ui/command" import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover" import { Separator } from "@/components/ui/separator" interface DataTableFacetedFilterProps { column?: Column title?: string options: { label: string value: string icon?: React.ComponentType<{ className?: string }> }[] } export function DataTableFacetedFilter({ column, title, options, }: DataTableFacetedFilterProps) { const facets = column?.getFacetedUniqueValues() const selectedValues = new Set(column?.getFilterValue() as string[]) return ( Nenhum resultado encontrado. {options.map((option) => { const isSelected = selectedValues.has(option.value) return ( { if (isSelected) { selectedValues.delete(option.value) } else { selectedValues.add(option.value) } const filterValues = Array.from(selectedValues) column?.setFilterValue(filterValues.length ? filterValues : undefined) }} >
{option.icon && } {option.label} {facets?.get(option.value) && ( {facets.get(option.value)} )}
) })}
{selectedValues.size > 0 && ( <> column?.setFilterValue(undefined)} className="justify-center text-center" > Limpar filtros )}
) }