mirror of
https://github.com/inventree/InvenTree.git
synced 2026-09-01 17:51:23 +00:00
* 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
41 lines
1.2 KiB
TypeScript
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>
|
|
);
|
|
}
|