1
0
Fork 0
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:
Chaim Lev-Ari 2023-09-04 10:33:07 +01:00 committed by GitHub
parent 440f4e8dda
commit cb7377ead6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 271 additions and 186 deletions

View file

@ -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>
);
};
}
}