45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { getOperationName } from '@apollo/client/utilities';
|
|
import { useRecoilValue } from 'recoil';
|
|
|
|
import { GET_COMPANIES } from '@/companies/queries';
|
|
import { GET_PIPELINES } from '@/pipeline/queries';
|
|
import { IconTrash } from '@/ui/icon/index';
|
|
import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/EntityTableActionBarButton';
|
|
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
|
import { selectedRowIdsSelector } from '@/ui/table/states/selectedRowIdsSelector';
|
|
import { useDeleteManyCompaniesMutation } from '~/generated/graphql';
|
|
|
|
export function TableActionBarButtonDeleteCompanies() {
|
|
const selectedRowIds = useRecoilValue(selectedRowIdsSelector);
|
|
|
|
const resetRowSelection = useResetTableRowSelection();
|
|
|
|
const [deleteCompanies] = useDeleteManyCompaniesMutation({
|
|
refetchQueries: [
|
|
getOperationName(GET_COMPANIES) ?? '',
|
|
getOperationName(GET_PIPELINES) ?? '',
|
|
],
|
|
});
|
|
|
|
async function handleDeleteClick() {
|
|
const rowIdsToDelete = selectedRowIds;
|
|
|
|
resetRowSelection();
|
|
|
|
await deleteCompanies({
|
|
variables: {
|
|
ids: rowIdsToDelete,
|
|
},
|
|
});
|
|
}
|
|
|
|
return (
|
|
<EntityTableActionBarButton
|
|
label="Delete"
|
|
icon={<IconTrash size={16} />}
|
|
type="warning"
|
|
onClick={handleDeleteClick}
|
|
/>
|
|
);
|
|
}
|