803 timebox improve the ux when creating a new step (#12599)
This commit is contained in:
@ -10,12 +10,14 @@ import { workflowSelectedNodeComponentState } from '@/workflow/workflow-diagram/
|
||||
import { useCreateWorkflowVersionStep } from '@/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep';
|
||||
import { workflowInsertStepIdsComponentState } from '@/workflow/workflow-steps/states/workflowInsertStepIdsComponentState';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { useState } from 'react';
|
||||
|
||||
export const useCreateStep = ({
|
||||
workflow,
|
||||
}: {
|
||||
workflow: WorkflowWithCurrentVersion;
|
||||
}) => {
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const { createWorkflowVersionStep } = useCreateWorkflowVersionStep();
|
||||
const setWorkflowSelectedNode = useSetRecoilComponentStateV2(
|
||||
workflowSelectedNodeComponentState,
|
||||
@ -31,29 +33,42 @@ export const useCreateStep = ({
|
||||
const { getUpdatableWorkflowVersion } = useGetUpdatableWorkflowVersion();
|
||||
|
||||
const createStep = async (newStepType: WorkflowStepType) => {
|
||||
if (!isDefined(workflowInsertStepIds.parentStepId)) {
|
||||
throw new Error(
|
||||
'No parentStepId. Please select a parent step to create from.',
|
||||
);
|
||||
}
|
||||
|
||||
const workflowVersionId = await getUpdatableWorkflowVersion(workflow);
|
||||
|
||||
const createdStep = (
|
||||
await createWorkflowVersionStep({
|
||||
workflowVersionId,
|
||||
stepType: newStepType,
|
||||
parentStepId: workflowInsertStepIds.parentStepId,
|
||||
nextStepId: workflowInsertStepIds.nextStepId,
|
||||
})
|
||||
)?.data?.createWorkflowVersionStep;
|
||||
|
||||
if (!createdStep) {
|
||||
if (isLoading === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
setWorkflowSelectedNode(createdStep.id);
|
||||
setWorkflowLastCreatedStepId(createdStep.id);
|
||||
setIsLoading(true);
|
||||
|
||||
try {
|
||||
if (!isDefined(workflowInsertStepIds.parentStepId)) {
|
||||
throw new Error(
|
||||
'No parentStepId. Please select a parent step to create from.',
|
||||
);
|
||||
}
|
||||
|
||||
const workflowVersionId = await getUpdatableWorkflowVersion(workflow);
|
||||
|
||||
const createdStep = (
|
||||
await createWorkflowVersionStep({
|
||||
workflowVersionId,
|
||||
stepType: newStepType,
|
||||
parentStepId: workflowInsertStepIds.parentStepId,
|
||||
nextStepId: workflowInsertStepIds.nextStepId,
|
||||
})
|
||||
)?.data?.createWorkflowVersionStep;
|
||||
|
||||
if (!createdStep) {
|
||||
return;
|
||||
}
|
||||
|
||||
setWorkflowSelectedNode(createdStep.id);
|
||||
setWorkflowLastCreatedStepId(createdStep.id);
|
||||
} catch (error) {
|
||||
setIsLoading(false);
|
||||
throw error;
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
@ -224,7 +224,8 @@ export class ServerlessFunctionService {
|
||||
await this.serverlessFunctionRepository.softDelete({ id });
|
||||
} else {
|
||||
await this.serverlessFunctionRepository.delete({ id });
|
||||
await this.fileStorageService.delete({
|
||||
// We don't need to await this
|
||||
this.fileStorageService.delete({
|
||||
folderPath: getServerlessFolder({
|
||||
serverlessFunction: existingServerlessFunction,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user