"use client"; "use no memo"; import type { Column } from "@tanstack/react-table"; import { ChevronDown, ChevronsUpDown, ChevronUp, EyeOff, X, } from "lucide-react"; import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { cn } from "@/lib/utils"; interface DataTableColumnHeaderProps extends React.ComponentProps { column: Column; label: string; } export function DataTableColumnHeader({ column, label, className, ...props }: DataTableColumnHeaderProps) { if (!column.getCanSort() && !column.getCanHide()) { return
{label}
; } return ( {label} {column.getCanSort() && (column.getIsSorted() === "desc" ? ( ) : column.getIsSorted() === "asc" ? ( ) : ( ))} {column.getCanSort() && ( <> column.toggleSorting(false)} > Asc column.toggleSorting(true)} > Desc {column.getIsSorted() && ( column.clearSorting()} > Reset )} )} {column.getCanHide() && ( column.toggleVisibility(false)} > Hide )} ); }