// // Copyright (c) 2025-2026 rustmailer.com (https://rustmailer.com) // // This file is part of the Bichon Email Archiving Project // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . import { ArrowDownIcon, ArrowUpIcon, CaretSortIcon, EyeNoneIcon, } from '@radix-ui/react-icons' import { Column } from '@tanstack/react-table' import { cn } from '@/lib/utils' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { useTranslation } from 'react-i18next' interface DataTableColumnHeaderProps extends React.HTMLAttributes { column: Column title: string } export function DataTableColumnHeader({ column, title, className, }: DataTableColumnHeaderProps) { if (!column.getCanSort()) { return
{title}
} const { t } = useTranslation() return (
column.toggleSorting(false)}> {t('table.asc')} column.toggleSorting(true)}> {t('table.desc')} column.toggleVisibility(false)}> {t('table.hide')}
) }