2026-01-19 01:52:07 +08:00
|
|
|
import { type Table } from '@tanstack/react-table'
|
|
|
|
|
import { DataTableViewOptions } from './view-options'
|
|
|
|
|
import { TagFilterPopover } from '../tag-filter-popover'
|
|
|
|
|
import { TimePopover } from '../time-popover'
|
|
|
|
|
import { MailFilterPopover } from '../contact-popover'
|
|
|
|
|
import { TextSearchInput } from '../text-search-input'
|
|
|
|
|
import { MoreFiltersPopover } from '../more-filters-popover'
|
|
|
|
|
import { FilterResetButton } from '../filter-reset'
|
2026-03-15 03:36:02 +08:00
|
|
|
import { MailboxPopover } from '../mailbox-popover'
|
|
|
|
|
import { AccountPopover } from '../account-popover'
|
2026-01-19 01:52:07 +08:00
|
|
|
|
|
|
|
|
type DataTableToolbarProps<TData> = {
|
|
|
|
|
table: Table<TData>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function DataTableToolbar<TData>({
|
|
|
|
|
table,
|
|
|
|
|
}: DataTableToolbarProps<TData>) {
|
|
|
|
|
return (
|
2026-04-19 01:01:46 +08:00
|
|
|
<div className="flex flex-col gap-1 p-1 bg-background">
|
|
|
|
|
<div className="mb-4 flex items-center justify-center w-full">
|
|
|
|
|
<div className="w-full max-w-3xl">
|
|
|
|
|
<TextSearchInput />
|
2026-01-19 01:52:07 +08:00
|
|
|
</div>
|
2026-04-19 01:01:46 +08:00
|
|
|
</div>
|
|
|
|
|
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 sm:gap-1">
|
|
|
|
|
<div className="flex items-center gap-2 flex-wrap w-full sm:w-auto">
|
|
|
|
|
<div className="flex items-center gap-1.5 flex-wrap">
|
|
|
|
|
<AccountPopover />
|
|
|
|
|
<MailboxPopover />
|
|
|
|
|
<MailFilterPopover />
|
|
|
|
|
<TagFilterPopover />
|
|
|
|
|
<MoreFiltersPopover />
|
|
|
|
|
</div>
|
2026-03-19 15:44:20 +08:00
|
|
|
<FilterResetButton />
|
2026-01-19 01:52:07 +08:00
|
|
|
</div>
|
2026-04-19 01:01:46 +08:00
|
|
|
<div className="flex items-center gap-1 shrink-0">
|
|
|
|
|
<TimePopover />
|
|
|
|
|
<DataTableViewOptions table={table} />
|
|
|
|
|
</div>
|
2026-01-19 01:52:07 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|