2023-07-13 09:55:22 +00:00
|
|
|
import { createColumnHelper } from '@tanstack/react-table';
|
|
|
|
import { Clock } from 'lucide-react';
|
2024-08-28 19:41:15 +00:00
|
|
|
import { EventMessage } from 'docker-types/generated/1.41';
|
2023-07-13 09:55:22 +00:00
|
|
|
|
|
|
|
import { isoDateFromTimestamp } from '@/portainer/filters/filters';
|
|
|
|
|
|
|
|
import { Datatable } from '@@/datatables';
|
|
|
|
import { createPersistedStore } from '@@/datatables/types';
|
|
|
|
import { useTableState } from '@@/datatables/useTableState';
|
|
|
|
|
2024-08-28 19:41:15 +00:00
|
|
|
import { createEventDetails } from './model';
|
2023-07-13 09:55:22 +00:00
|
|
|
|
2024-08-28 19:41:15 +00:00
|
|
|
const columnHelper = createColumnHelper<EventMessage>();
|
2023-07-13 09:55:22 +00:00
|
|
|
|
|
|
|
export const columns = [
|
2024-08-28 19:41:15 +00:00
|
|
|
columnHelper.accessor('time', {
|
2023-07-13 09:55:22 +00:00
|
|
|
header: 'Date',
|
|
|
|
cell: ({ getValue }) => {
|
|
|
|
const value = getValue();
|
|
|
|
return isoDateFromTimestamp(value);
|
|
|
|
},
|
|
|
|
}),
|
2024-08-28 19:41:15 +00:00
|
|
|
columnHelper.accessor((c) => c.Type, {
|
2023-07-13 09:55:22 +00:00
|
|
|
header: 'Type',
|
|
|
|
}),
|
2024-08-28 19:41:15 +00:00
|
|
|
columnHelper.accessor((c) => createEventDetails(c), {
|
2023-07-13 09:55:22 +00:00
|
|
|
header: 'Details',
|
|
|
|
}),
|
|
|
|
];
|
|
|
|
|
|
|
|
const tableKey = 'docker-events';
|
|
|
|
const settingsStore = createPersistedStore(tableKey, {
|
|
|
|
id: 'Time',
|
|
|
|
desc: true,
|
|
|
|
});
|
|
|
|
|
2024-08-28 19:41:15 +00:00
|
|
|
export function EventsDatatable({
|
|
|
|
dataset,
|
|
|
|
}: {
|
|
|
|
dataset?: Array<EventMessage>;
|
|
|
|
}) {
|
2023-07-13 09:55:22 +00:00
|
|
|
const tableState = useTableState(settingsStore, tableKey);
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Datatable
|
2023-07-19 15:28:07 +00:00
|
|
|
dataset={dataset ?? []}
|
2024-08-28 19:41:15 +00:00
|
|
|
isLoading={!dataset}
|
2023-07-13 09:55:22 +00:00
|
|
|
columns={columns}
|
|
|
|
settingsManager={tableState}
|
|
|
|
title="Events"
|
|
|
|
titleIcon={Clock}
|
|
|
|
disableSelect
|
2024-04-11 00:11:38 +00:00
|
|
|
data-cy="docker-events-datatable"
|
2023-07-13 09:55:22 +00:00
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|