portainer/app/react/components/datatables/editable/isEditableTableMeta.ts

26 lines
729 B
TypeScript

import { RowData } from '@tanstack/react-table';
interface EditableTableMeta<TData extends RowData> {
getEditableRow: () => number;
getEditableRowOriginalData: () => TData | undefined;
editRow: (rowIndex: number, row: TData | undefined) => void;
updateRow: (rowIndex: number, row: TData | undefined) => void;
revertRow: () => void;
acceptRow: () => void;
}
export function isEditableTableMeta<TData extends RowData>(
meta?: unknown
): meta is EditableTableMeta<TData> {
return (
!!meta &&
typeof meta === 'object' &&
'getEditableRow' in meta &&
'getEditableRowOriginalData' in meta &&
'editRow' in meta &&
'updateRow' in meta &&
'revertRow' in meta &&
'acceptRow' in meta
);
}