d0ff1ffd5f
- create a serverless function when creating a new workflow code step - add code editor in workflow code step - move workflowVersion steps management from frontend to backend - add a custom resolver for workflow-version management - fix optimistic rendering on frontend - fix css - delete serverless function when deleting workflow code step TODO - Don't update serverlessFunction if no code change - Factorize what can be between crud trigger and crud step - Publish serverless version when activating workflow - delete serverless functions when deleting workflow or workflowVersion - fix optimistic rendering for code updates - Unify CRUD types <img width="1279" alt="image" src="https://github.com/user-attachments/assets/3d97ee9f-4b96-4abc-9d36-5c0280058be4">
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import { WorkflowDiagramStepNodeBase } from '@/workflow/components/WorkflowDiagramStepNodeBase';
|
|
import { useDeleteStep } from '@/workflow/hooks/useDeleteStep';
|
|
import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion';
|
|
import { workflowIdState } from '@/workflow/states/workflowIdState';
|
|
import { WorkflowDiagramStepNodeData } from '@/workflow/types/WorkflowDiagram';
|
|
import { assertWorkflowWithCurrentVersionIsDefined } from '@/workflow/utils/assertWorkflowWithCurrentVersionIsDefined';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { FloatingIconButton, IconTrash } from 'twenty-ui';
|
|
|
|
export const WorkflowDiagramStepNodeEditable = ({
|
|
id,
|
|
data,
|
|
selected,
|
|
}: {
|
|
id: string;
|
|
data: WorkflowDiagramStepNodeData;
|
|
selected?: boolean;
|
|
}) => {
|
|
const workflowId = useRecoilValue(workflowIdState);
|
|
|
|
const workflowWithCurrentVersion = useWorkflowWithCurrentVersion(workflowId);
|
|
assertWorkflowWithCurrentVersionIsDefined(workflowWithCurrentVersion);
|
|
|
|
const { deleteStep } = useDeleteStep({
|
|
workflow: workflowWithCurrentVersion,
|
|
});
|
|
|
|
return (
|
|
<WorkflowDiagramStepNodeBase
|
|
data={data}
|
|
RightFloatingElement={
|
|
selected ? (
|
|
<FloatingIconButton
|
|
size="medium"
|
|
Icon={IconTrash}
|
|
onClick={() => {
|
|
deleteStep(id);
|
|
}}
|
|
/>
|
|
) : undefined
|
|
}
|
|
/>
|
|
);
|
|
};
|