Remove dead code about workflow leaf nodes (#10901)

Leaf nodes is no longer a concept in the workflow diagrams. This PR
removes dead code.

Closes https://github.com/twentyhq/core-team-issues/issues/386
This commit is contained in:
Baptiste Devessier
2025-03-14 18:33:19 +01:00
committed by GitHub
parent 1bc30e9b21
commit 5b7b58c85f
20 changed files with 5 additions and 207 deletions
@@ -10,7 +10,6 @@ import { workflowDiagramState } from '@/workflow/workflow-diagram/states/workflo
import { addCreateStepNodes } from '@/workflow/workflow-diagram/utils/addCreateStepNodes';
import { getWorkflowVersionDiagram } from '@/workflow/workflow-diagram/utils/getWorkflowVersionDiagram';
import { markLeafNodes } from '@/workflow/workflow-diagram/utils/markLeafNodes';
import { mergeWorkflowDiagrams } from '@/workflow/workflow-diagram/utils/mergeWorkflowDiagrams';
import { useEffect } from 'react';
import { useRecoilCallback, useSetRecoilState } from 'recoil';
@@ -33,8 +32,8 @@ export const WorkflowDiagramEffect = ({
workflowDiagramState,
);
const nextWorkflowDiagram = markLeafNodes(
addCreateStepNodes(getWorkflowVersionDiagram(currentVersion)),
const nextWorkflowDiagram = addCreateStepNodes(
getWorkflowVersionDiagram(currentVersion),
);
let mergedWorkflowDiagram = nextWorkflowDiagram;
@@ -1,5 +1,4 @@
import { WorkflowDiagramStepNodeBase } from '@/workflow/workflow-diagram/components/WorkflowDiagramStepNodeBase';
import { WorkflowDiagramEmptyTriggerNodeData } from '@/workflow/workflow-diagram/types/WorkflowDiagram';
import styled from '@emotion/styled';
const StyledStepNodeLabelIconContainer = styled.div`
@@ -11,18 +10,13 @@ const StyledStepNodeLabelIconContainer = styled.div`
padding: ${({ theme }) => theme.spacing(3)};
`;
export const WorkflowDiagramEmptyTrigger = ({
data,
}: {
data: WorkflowDiagramEmptyTriggerNodeData;
}) => {
export const WorkflowDiagramEmptyTrigger = () => {
return (
<WorkflowDiagramStepNodeBase
name="Add a Trigger"
nodeType="trigger"
variant="empty"
Icon={<StyledStepNodeLabelIconContainer />}
isLeafNode={data.isLeafNode}
/>
);
};
@@ -194,14 +194,12 @@ export const WorkflowDiagramStepNodeBase = ({
variant,
Icon,
RightFloatingElement,
isLeafNode,
}: {
nodeType: WorkflowDiagramStepNodeData['nodeType'];
name: string;
variant: WorkflowDiagramNodeVariant;
Icon?: React.ReactNode;
RightFloatingElement?: React.ReactNode;
isLeafNode: boolean;
}) => {
return (
<StyledStepNodeContainer className="workflow-node-container">
@@ -227,9 +225,7 @@ export const WorkflowDiagramStepNodeBase = ({
) : null}
</StyledStepNodeInnerContainer>
{!isLeafNode && (
<StyledSourceHandle type="source" position={Position.Bottom} />
)}
<StyledSourceHandle type="source" position={Position.Bottom} />
</StyledStepNodeContainer>
);
};
@@ -30,7 +30,6 @@ export const WorkflowDiagramStepNodeEditableContent = ({
/>
) : undefined
}
isLeafNode={data.isLeafNode}
/>
);
};
@@ -34,7 +34,6 @@ export const WorkflowDiagramStepNodeReadonly = ({
variant={getNodeVariantFromRunStatus(data.runStatus)}
nodeType={data.nodeType}
Icon={<WorkflowDiagramStepNodeIcon data={data} />}
isLeafNode={data.isLeafNode}
/>
);
};
@@ -3,7 +3,6 @@ import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion';
import { flowState } from '@/workflow/states/flowState';
import { workflowDiagramState } from '@/workflow/workflow-diagram/states/workflowDiagramState';
import { getWorkflowVersionDiagram } from '@/workflow/workflow-diagram/utils/getWorkflowVersionDiagram';
import { markLeafNodes } from '@/workflow/workflow-diagram/utils/markLeafNodes';
import { useEffect } from 'react';
import { useSetRecoilState } from 'recoil';
import { isDefined } from 'twenty-shared';
@@ -39,9 +38,7 @@ export const WorkflowVersionVisualizerEffect = ({
return;
}
const nextWorkflowDiagram = markLeafNodes(
getWorkflowVersionDiagram(workflowVersion),
);
const nextWorkflowDiagram = getWorkflowVersionDiagram(workflowVersion);
setWorkflowDiagram(nextWorkflowDiagram);
}, [setWorkflowDiagram, workflowVersion]);
@@ -64,7 +64,6 @@ export const DefaultEdge: Story = {
nodeType: 'trigger',
triggerType: 'DATABASE_EVENT',
name: 'When record is created',
isLeafNode: false,
},
},
{
@@ -75,7 +74,6 @@ export const DefaultEdge: Story = {
nodeType: 'action',
actionType: 'CREATE_RECORD',
name: 'Create record',
isLeafNode: false,
},
},
{
@@ -139,7 +137,6 @@ export const SuccessEdge: Story = {
nodeType: 'trigger',
triggerType: 'DATABASE_EVENT',
name: 'When record is created',
isLeafNode: false,
},
},
{
@@ -150,7 +147,6 @@ export const SuccessEdge: Story = {
nodeType: 'action',
actionType: 'CREATE_RECORD',
name: 'Create record',
isLeafNode: false,
},
},
],
@@ -11,7 +11,6 @@ const meta: Meta<typeof WorkflowDiagramEmptyTrigger> = {
args: {
data: {
nodeType: 'empty-trigger',
isLeafNode: true,
},
},
};
@@ -42,21 +41,3 @@ export const Selected: Story = {
ComponentDecorator,
],
};
export const IsNotLeafNode: Story = {
decorators: [
(Story) => (
<div style={{ position: 'relative' }}>
<Story />
</div>
),
ComponentDecorator,
ReactflowDecorator,
],
args: {
data: {
nodeType: 'empty-trigger',
isLeafNode: false,
},
},
};
@@ -37,43 +37,36 @@ const ALL_STEPS = [
nodeType: 'trigger',
triggerType: 'DATABASE_EVENT',
name: 'Record is Created',
isLeafNode: true,
},
{
nodeType: 'trigger',
triggerType: 'MANUAL',
name: 'Manual',
isLeafNode: true,
},
{
nodeType: 'action',
actionType: 'CREATE_RECORD',
name: 'Create Record',
isLeafNode: true,
},
{
nodeType: 'action',
actionType: 'UPDATE_RECORD',
name: 'Update Record',
isLeafNode: true,
},
{
nodeType: 'action',
actionType: 'DELETE_RECORD',
name: 'Delete Record',
isLeafNode: true,
},
{
nodeType: 'action',
actionType: 'SEND_EMAIL',
name: 'Send Email',
isLeafNode: true,
},
{
nodeType: 'action',
actionType: 'CODE',
name: 'Code',
isLeafNode: true,
},
] satisfies WorkflowDiagramStepNodeData[];
@@ -130,22 +123,3 @@ export const Catalog: CatalogStory<Story, typeof Wrapper> = {
ReactflowDecorator,
],
};
export const IsNotLeafNode: Story = {
args: {
data: {
...ALL_STEPS[0],
isLeafNode: false,
},
state: 'default',
variant: 'default',
},
decorators: [
(Story) => (
<div style={{ position: 'relative' }}>
<Story />
</div>
),
ReactflowDecorator,
],
};