in projects/Aligned-Platform-EnergizeAI/app/src/components/ui/data-table-column-header.tsx [20:71]
export function DataTableColumnHeader<TData, TValue>({
column,
title,
className,
align,
}: DataTableColumnHeaderProps<TData, TValue>) {
if (!column.getCanSort()) {
return (
<div
className={cn(
className,
align === "center" && "justify-center text-center",
align === "right" && "justify-end text-right",
)}
>
{title}
</div>
)
}
return (
<div
className={cn(
"flex items-center space-x-2",
align === "center" && "justify-center text-center",
align === "right" && "justify-end text-right",
className,
)}
>
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button
variant="ghost"
size="sm"
className={cn(
"-ml-3 h-8 data-[state=open]:bg-accent",
align === "center" && "flex justify-center text-center",
align === "right" && "flex justify-end text-right",
)}
>
<span className="whitespace-nowrap">{title}</span>
{column.getIsSorted() === "desc" ? (
<SortDesc className="ml-2 h-4 w-4" />
) : column.getIsSorted() === "asc" ? (
<SortAsc className="ml-2 h-4 w-4" />
) : (
<ChevronsUpDown className="ml-2 h-4 w-4" />
)}
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="start">
<DropdownMenuItem onClick={() => column.toggleSorting(false)}>