feat: add board options dropdown and pipeline stage creation (#1399)

* feat: add board options dropdown and pipeline stage creation

Closes #1395

* refactor: code review

- remove useCallback
This commit is contained in:
Thaïs
2023-09-04 11:37:31 +02:00
committed by GitHub
parent 2ac32e42c5
commit f29d843db9
14 changed files with 351 additions and 67 deletions

View File

@ -0,0 +1,11 @@
import { gql } from '@apollo/client';
export const CREATE_PIPELINE_STAGE = gql`
mutation CreatePipelineStage($data: PipelineStageCreateInput!) {
pipelineStage: createOnePipelineStage(data: $data) {
id
name
color
}
}
`;

View File

@ -0,0 +1,34 @@
import { getOperationName } from '@apollo/client/utilities';
import { useRecoilValue } from 'recoil';
import type { BoardColumnDefinition } from '@/ui/board/types/BoardColumnDefinition';
import { useCreatePipelineStageMutation } from '~/generated/graphql';
import { GET_PIPELINES } from '../graphql/queries/getPipelines';
import { currentPipelineState } from '../states/currentPipelineState';
export const usePipelineStages = () => {
const currentPipeline = useRecoilValue(currentPipelineState);
const [createPipelineStageMutation] = useCreatePipelineStageMutation();
const handlePipelineStageAdd = async (boardColumn: BoardColumnDefinition) => {
if (!currentPipeline?.id) return;
return createPipelineStageMutation({
variables: {
data: {
color: boardColumn.colorCode,
id: boardColumn.id,
index: boardColumn.index,
name: boardColumn.title,
pipeline: { connect: { id: currentPipeline.id } },
type: 'ongoing',
},
},
refetchQueries: [getOperationName(GET_PIPELINES) ?? ''],
});
};
return { handlePipelineStageAdd };
};