1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-22 06:49:40 +02:00

refactor(docker/containers): migrate processes table to react [EE-4666] (#10081)

This commit is contained in:
Chaim Lev-Ari 2023-09-04 17:05:01 +01:00 committed by GitHub
parent e5880b3e34
commit 46e73ee524
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 65 additions and 91 deletions

View file

@ -0,0 +1,58 @@
import { ColumnDef } from '@tanstack/react-table';
import { List } from 'lucide-react';
import { useMemo } from 'react';
import { Datatable } from '@@/datatables';
import { createPersistedStore } from '@@/datatables/types';
import { useTableState } from '@@/datatables/useTableState';
const tableKey = 'container-processes';
const store = createPersistedStore(tableKey);
export function ProcessesDatatable({
dataset,
headers,
}: {
dataset?: Array<Array<string | number>>;
headers?: Array<string>;
}) {
const tableState = useTableState(store, tableKey);
const rows = useMemo(() => {
if (!dataset || !headers) {
return [];
}
return dataset.map((row, index) => ({
id: index,
...Object.fromEntries(
headers.map((header, index) => [header, row[index]])
),
}));
}, [dataset, headers]);
const columns = useMemo(
() =>
headers
? headers.map(
(header) =>
({ header, accessorKey: header } satisfies ColumnDef<{
[k: string]: string;
}>)
)
: [],
[headers]
);
return (
<Datatable
title="Processes"
titleIcon={List}
dataset={rows}
columns={columns}
settingsManager={tableState}
disableSelect
isLoading={!dataset}
emptyContentLabel="No processes found."
/>
);
}