Files
twenty/front/src/modules/pipeline-progress/components/BoardActionBarButtonDeletePipelineProgress.tsx
T
Jérémy M 1144bd13ed feat: onboarding & profile edition (#507)
* feat: wip onboarding

* fix: generate graphql front

* wip: onboarding

* feat: login/register and edit profile

* fix: unused import

* fix: test

* Use DEBUG_MODE instead of STAGE and mute typescript depth exceed errors

* Fix seeds

* Fix onboarding when coming from google

* Fix

* Fix lint

* Fix ci

* Fix tests

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-07-06 17:05:15 -07:00

48 lines
1.4 KiB
TypeScript

import { getOperationName } from '@apollo/client/utilities';
import { useRecoilState } from 'recoil';
import { EntityTableActionBarButton } from '@/ui/components/table/action-bar/EntityTableActionBarButton';
import { IconTrash } from '@/ui/icons/index';
import { useDeleteManyPipelineProgressMutation } from '~/generated/graphql';
import { GET_PIPELINES } from '../queries';
import { boardItemsState } from '../states/boardItemsState';
import { selectedBoardItemsState } from '../states/selectedBoardItemsState';
export function BoardActionBarButtonDeletePipelineProgress() {
const [selectedBoardItems, setSelectedBoardItems] = useRecoilState(
selectedBoardItemsState,
);
const [boardItems, setBoardItems] = useRecoilState(boardItemsState);
const [deletePipelineProgress] = useDeleteManyPipelineProgressMutation({
refetchQueries: [getOperationName(GET_PIPELINES) ?? ''],
});
async function handleDeleteClick() {
await deletePipelineProgress({
variables: {
ids: selectedBoardItems,
},
});
setBoardItems(
Object.fromEntries(
Object.entries(boardItems).filter(
([key]) => !selectedBoardItems.includes(key),
),
),
);
setSelectedBoardItems([]);
}
return (
<EntityTableActionBarButton
label="Delete"
icon={<IconTrash size={16} />}
type="warning"
onClick={handleDeleteClick}
/>
);
}