"use client" import type { Column } from "@tanstack/react-table" import { ArrowDown, ArrowUp, ArrowUpDown, EyeOff, X } from "lucide-react" import { cn } from "@/shared/lib/utils" import { Button } from "@/shared/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/shared/components/ui/dropdown-menu" interface ColumnHeaderProps extends React.ComponentProps<"div"> { column: Column title: string } export function ColumnHeader({ column, title, className, }: ColumnHeaderProps) { const isSortable = column.getCanSort() const hasDropdown = isSortable return (
{hasDropdown ? ( {isSortable && ( <> column.toggleSorting(false)}> Asc column.toggleSorting(true)}> Desc {column.getIsSorted() && ( <> column.clearSorting()}> Clear )} )} {column.getCanHide() && ( <> column.toggleVisibility(false)}> Hide )} ) : ( {title} )}
) }