Files
gpustack-ui/src/hooks/use-table-row-selection.ts
T

36 lines
932 B
TypeScript

import { useState } from 'react';
export default function useTableRowSelection() {
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
const onSelectChange = (selectedRowKeys: React.Key[]) => {
setSelectedRowKeys(selectedRowKeys);
};
const clearSelections = () => {
setSelectedRowKeys([]);
};
const removeSelectedKey = (rowKey: React.Key | React.Key[]) => {
if (Array.isArray(rowKey)) {
setSelectedRowKeys((keys) => keys.filter((key) => !rowKey.includes(key)));
return;
}
setSelectedRowKeys((keys) => keys.filter((key) => key !== rowKey));
};
const removeSelectedKeys = (rowKeys: React.Key[]) => {
setSelectedRowKeys((keys) => keys.filter((key) => !rowKeys.includes(key)));
};
const rowSelection = {
selectedRowKeys,
clearSelections,
onChange: onSelectChange,
removeSelectedKeys,
removeSelectedKey
};
return rowSelection;
}