803 timebox improve the ux when creating a new step (#12599)

This commit is contained in:
martmull
2025-06-13 17:22:49 +02:00
committed by GitHub
parent 671a7fbd28
commit dde3ca4549
2 changed files with 37 additions and 21 deletions

View File

@ -10,12 +10,14 @@ import { workflowSelectedNodeComponentState } from '@/workflow/workflow-diagram/
import { useCreateWorkflowVersionStep } from '@/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep'; import { useCreateWorkflowVersionStep } from '@/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep';
import { workflowInsertStepIdsComponentState } from '@/workflow/workflow-steps/states/workflowInsertStepIdsComponentState'; import { workflowInsertStepIdsComponentState } from '@/workflow/workflow-steps/states/workflowInsertStepIdsComponentState';
import { isDefined } from 'twenty-shared/utils'; import { isDefined } from 'twenty-shared/utils';
import { useState } from 'react';
export const useCreateStep = ({ export const useCreateStep = ({
workflow, workflow,
}: { }: {
workflow: WorkflowWithCurrentVersion; workflow: WorkflowWithCurrentVersion;
}) => { }) => {
const [isLoading, setIsLoading] = useState(false);
const { createWorkflowVersionStep } = useCreateWorkflowVersionStep(); const { createWorkflowVersionStep } = useCreateWorkflowVersionStep();
const setWorkflowSelectedNode = useSetRecoilComponentStateV2( const setWorkflowSelectedNode = useSetRecoilComponentStateV2(
workflowSelectedNodeComponentState, workflowSelectedNodeComponentState,
@ -31,6 +33,13 @@ export const useCreateStep = ({
const { getUpdatableWorkflowVersion } = useGetUpdatableWorkflowVersion(); const { getUpdatableWorkflowVersion } = useGetUpdatableWorkflowVersion();
const createStep = async (newStepType: WorkflowStepType) => { const createStep = async (newStepType: WorkflowStepType) => {
if (isLoading === true) {
return;
}
setIsLoading(true);
try {
if (!isDefined(workflowInsertStepIds.parentStepId)) { if (!isDefined(workflowInsertStepIds.parentStepId)) {
throw new Error( throw new Error(
'No parentStepId. Please select a parent step to create from.', 'No parentStepId. Please select a parent step to create from.',
@ -54,6 +63,12 @@ export const useCreateStep = ({
setWorkflowSelectedNode(createdStep.id); setWorkflowSelectedNode(createdStep.id);
setWorkflowLastCreatedStepId(createdStep.id); setWorkflowLastCreatedStepId(createdStep.id);
} catch (error) {
setIsLoading(false);
throw error;
} finally {
setIsLoading(false);
}
}; };
return { return {

View File

@ -224,7 +224,8 @@ export class ServerlessFunctionService {
await this.serverlessFunctionRepository.softDelete({ id }); await this.serverlessFunctionRepository.softDelete({ id });
} else { } else {
await this.serverlessFunctionRepository.delete({ id }); await this.serverlessFunctionRepository.delete({ id });
await this.fileStorageService.delete({ // We don't need to await this
this.fileStorageService.delete({
folderPath: getServerlessFolder({ folderPath: getServerlessFolder({
serverlessFunction: existingServerlessFunction, serverlessFunction: existingServerlessFunction,
}), }),