Files
InvenTree/src/frontend/lib/components/TableColumnSelect.tsx
T
Oliver 7f1f2dbad2 [UI] Table column filters (#12103)
* Expose properties for column based filtering

* Adjust renderers

* Hide filter if name does not match

* Allow multiple filters on same column

* Better formatting

* Add filtering support for multiple tables

* Revert yarn.lock changes

* Fix date input props

* Updated column

* Add filter  to PartTable

* Add playwright tests for new column filters

* Update CHANGELOG

* Updated docs

* Reduce padding

* Update more table filters

* More filter columns

* Adjust playwright test

* Simplify playwright test

* Robustify playwright tests

* Add some delay

* Add some buffer time
2026-06-07 12:59:33 +10:00

41 lines
1.2 KiB
TypeScript

import { t } from '@lingui/core/macro';
import { ActionIcon, Checkbox, Divider, Menu, Tooltip } from '@mantine/core';
import { IconAdjustments } from '@tabler/icons-react';
export function TableColumnSelect({
columns,
onToggleColumn
}: Readonly<{
columns: any[];
onToggleColumn: (columnName: string) => void;
}>) {
return (
<Menu shadow='xs' closeOnItemClick={false}>
<Menu.Target>
<ActionIcon variant='transparent' aria-label='table-select-columns'>
<Tooltip label={t`Select Columns`} position='top-end'>
<IconAdjustments />
</Tooltip>
</ActionIcon>
</Menu.Target>
<Menu.Dropdown style={{ maxHeight: '400px', overflowY: 'auto' }}>
<Menu.Label>{t`Select Columns`}</Menu.Label>
<Divider />
{columns
.filter((col) => (col.switchable ?? true) && !col.propHidden)
.map((col) => (
<Menu.Item key={col.accessor}>
<Checkbox
checked={!col.hidden}
label={col.title || col.accessor}
onChange={() => onToggleColumn(col.accessor)}
radius='sm'
/>
</Menu.Item>
))}
</Menu.Dropdown>
</Menu>
);
}