mirror of
https://github.com/portainer/portainer.git
synced 2025-07-21 22:39:41 +02:00
refactor(ui/datatables): allow datatable to globally filter on object value [EE-5824] (#9955)
This commit is contained in:
parent
440f4e8dda
commit
cb7377ead6
34 changed files with 271 additions and 186 deletions
|
@ -1,41 +0,0 @@
|
|||
import { ColumnDef, CellContext } from '@tanstack/react-table';
|
||||
|
||||
import { Link } from '@@/Link';
|
||||
|
||||
export function buildNameColumn<T extends Record<string, unknown>>(
|
||||
nameKey: keyof T,
|
||||
idKey: string,
|
||||
path: string,
|
||||
idParam = 'id'
|
||||
): ColumnDef<T> {
|
||||
const cell = createCell<T>();
|
||||
|
||||
return {
|
||||
header: 'Name',
|
||||
accessorKey: nameKey,
|
||||
id: 'name',
|
||||
cell,
|
||||
enableSorting: true,
|
||||
enableHiding: false,
|
||||
};
|
||||
|
||||
function createCell<T extends Record<string, unknown>>() {
|
||||
return function NameCell({ renderValue, row }: CellContext<T, unknown>) {
|
||||
const name = renderValue() || '';
|
||||
|
||||
if (typeof name !== 'string') {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Link
|
||||
to={path}
|
||||
params={{ [idParam]: row.original[idKey] }}
|
||||
title={name}
|
||||
>
|
||||
{name}
|
||||
</Link>
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue