Skip to content

Commit 7805cf1

Browse files
committed
2867-fixed typescript issues
1 parent 8b97d74 commit 7805cf1

File tree

6 files changed

+72
-66
lines changed

6 files changed

+72
-66
lines changed

client/src/pages/platform/workflow-editor/components/WorkflowNodesPopoverMenuOperationList.tsx

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -188,21 +188,25 @@ const WorkflowNodesPopoverMenuOperationList = ({
188188
return;
189189
}
190190

191+
if (!rootClusterElementNodeData?.workflowNodeName || !rootClusterElementNodeData?.componentName) {
192+
console.error('Root cluster element node data is missing required properties');
193+
194+
return;
195+
}
196+
191197
const workflowDefinitionTasks = JSON.parse(workflow.definition).tasks;
192198

193-
const mainClusterRootTask = rootClusterElementNodeData?.workflowNodeName
194-
? getTaskDispatcherTask({
195-
taskDispatcherId: rootClusterElementNodeData.workflowNodeName,
196-
tasks: workflowDefinitionTasks,
197-
})
198-
: undefined;
199+
const mainClusterRootTask = getTaskDispatcherTask({
200+
taskDispatcherId: rootClusterElementNodeData.workflowNodeName,
201+
tasks: workflowDefinitionTasks,
202+
});
199203

200204
if (!mainClusterRootTask) {
201205
return;
202206
}
203207

204208
const clusterElements = initializeClusterElementsObject({
205-
clusterElementsData: mainClusterRootTask?.clusterElements || {},
209+
clusterElementsData: mainClusterRootTask.clusterElements || {},
206210
mainClusterRootComponentDefinition,
207211
mainClusterRootTask,
208212
});
@@ -212,7 +216,7 @@ const WorkflowNodesPopoverMenuOperationList = ({
212216
clusterElements,
213217
elementType: clusterElementType,
214218
isMultipleElements,
215-
mainRootId: rootClusterElementNodeData?.workflowNodeName,
219+
mainRootId: rootClusterElementNodeData.workflowNodeName,
216220
sourceNodeId,
217221
});
218222

@@ -234,22 +238,28 @@ const WorkflowNodesPopoverMenuOperationList = ({
234238
}
235239

236240
if (workflowNodeDetailsPanelOpen && currentNode?.workflowNodeName === sourceNodeName) {
237-
if (rootClusterElementNodeData) {
238-
setCurrentNode({
239-
...rootClusterElementNodeData,
240-
clusterElements: updatedClusterElements.nestedClusterElements,
241-
});
242-
}
241+
setCurrentNode({
242+
...rootClusterElementNodeData,
243+
clusterElements: updatedClusterElements.nestedClusterElements,
244+
});
243245

244246
setWorkflowNodeDetailsPanelOpen(false);
245247
}
246248

247249
saveWorkflowDefinition({
248250
invalidateWorkflowQueries,
249-
nodeData: updatedNodeData,
251+
nodeData: {
252+
...updatedNodeData,
253+
componentName: rootClusterElementNodeData.componentName,
254+
workflowNodeName: rootClusterElementNodeData.workflowNodeName,
255+
},
250256
onSuccess: () => {
251257
handleComponentAddedSuccess({
252-
nodeData: updatedNodeData,
258+
nodeData: {
259+
...updatedNodeData,
260+
componentName: rootClusterElementNodeData.componentName,
261+
workflowNodeName: rootClusterElementNodeData.workflowNodeName,
262+
},
253263
queryClient,
254264
workflow,
255265
});

client/src/pages/platform/workflow-editor/utils/clusterElementsFieldChangeUtils.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,7 @@ type FieldUpdateType = {
1212
interface CreateUpdatedElementProps {
1313
currentComponentDefinition: ComponentDefinition;
1414
currentOperationProperties?: Array<PropertyAllType>;
15-
element:
16-
| ClusterElementItemType
17-
| NodeDataType
18-
| (Omit<NodeDataType, 'componentName' | 'workflowNodeName'> & {
19-
componentName?: string;
20-
workflowNodeName?: string;
21-
});
15+
element: ClusterElementItemType | NodeDataType;
2216
fieldUpdate: FieldUpdateType;
2317
}
2418

@@ -65,10 +59,7 @@ interface UpdateClusterRootElementFieldProps {
6559
currentComponentDefinition: ComponentDefinition;
6660
currentOperationProperties?: Array<PropertyAllType>;
6761
fieldUpdate: FieldUpdateType;
68-
mainRootElement: Omit<NodeDataType, 'componentName' | 'workflowNodeName'> & {
69-
componentName?: string;
70-
workflowNodeName?: string;
71-
};
62+
mainRootElement: NodeDataType;
7263
}
7364

7465
export function updateClusterRootElementField({
@@ -87,9 +78,9 @@ export function updateClusterRootElementField({
8778
return {
8879
...mainRootElement,
8980
...updatedElementData,
90-
...(mainRootElement.componentName ? {componentName: mainRootElement.componentName} : {}),
81+
componentName: mainRootElement.componentName,
9182
name: mainRootElement.name,
92-
...(mainRootElement.workflowNodeName ? {workflowNodeName: mainRootElement.workflowNodeName} : {}),
83+
workflowNodeName: mainRootElement.workflowNodeName,
9384
};
9485
}
9586

client/src/pages/platform/workflow-editor/utils/handleComponentAddedSuccess.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@ import useWorkflowNodeDetailsPanelStore from '@/pages/platform/workflow-editor/s
22
import {Workflow} from '@/shared/middleware/platform/configuration';
33
import {WorkflowNodeOutputKeys} from '@/shared/queries/platform/workflowNodeOutputs.queries';
44
import {environmentStore} from '@/shared/stores/useEnvironmentStore';
5-
import {ComponentType, NodeDataType} from '@/shared/types';
5+
import {NodeDataType} from '@/shared/types';
66
import {QueryClient} from '@tanstack/react-query';
77

88
interface HandleComponentAddedSuccessProps {
9-
nodeData: Omit<NodeDataType, 'componentName' | 'workflowNodeName'> & {
10-
componentName?: string;
11-
workflowNodeName?: string;
12-
};
9+
nodeData: NodeDataType;
1310
queryClient: QueryClient;
1411
workflow: Workflow;
1512
}
@@ -36,12 +33,12 @@ export default function handleComponentAddedSuccess({
3633

3734
if (useWorkflowNodeDetailsPanelStore.getState().workflowNodeDetailsPanelOpen) {
3835
if (currentNode?.trigger && nodeData.trigger) {
39-
setCurrentNode({...currentNode, ...nodeData} as NodeDataType);
40-
setCurrentComponent({...currentComponent, ...nodeData} as ComponentType);
36+
setCurrentNode({...currentNode, ...nodeData});
37+
setCurrentComponent({...currentComponent, ...nodeData});
4138
}
4239
} else if (!nodeData.clusterElements) {
43-
setCurrentNode({...nodeData, description: ''} as NodeDataType);
44-
setCurrentComponent({...nodeData, description: ''} as ComponentType);
40+
setCurrentNode({...nodeData, description: ''});
41+
setCurrentComponent({...nodeData, description: ''});
4542
setWorkflowNodeDetailsPanelOpen(true);
4643
}
4744
}

client/src/pages/platform/workflow-editor/utils/saveClusterElementFieldChange.ts

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {ComponentDefinition, Workflow} from '@/shared/middleware/platform/configuration';
2-
import {ClusterElementsType, ComponentType, NodeDataType, PropertyAllType} from '@/shared/types';
2+
import {ClusterElementsType, NodeDataType, PropertyAllType} from '@/shared/types';
33
import {UseMutationResult} from '@tanstack/react-query';
44

55
import useWorkflowDataStore from '../stores/useWorkflowDataStore';
@@ -41,41 +41,46 @@ export default function saveClusterElementFieldChange({
4141

4242
const {componentName, name, workflowNodeName} = currentNode;
4343

44+
if (!rootClusterElementNodeData?.workflowNodeName || !rootClusterElementNodeData?.componentName) {
45+
console.error('Root cluster element node data is missing required properties');
46+
47+
return;
48+
}
49+
4450
const workflowDefinitionTasks = JSON.parse(workflow.definition).tasks;
4551

46-
const mainClusterRootTask = rootClusterElementNodeData?.workflowNodeName
47-
? getTaskDispatcherTask({
48-
taskDispatcherId: rootClusterElementNodeData.workflowNodeName,
49-
tasks: workflowDefinitionTasks,
50-
})
51-
: undefined;
52+
const mainClusterRootTask = getTaskDispatcherTask({
53+
taskDispatcherId: rootClusterElementNodeData.workflowNodeName,
54+
tasks: workflowDefinitionTasks,
55+
});
5256

5357
if (!mainClusterRootTask) {
5458
return;
5559
}
5660

57-
let updatedMainRootData: Omit<NodeDataType, 'componentName' | 'workflowNodeName'> & {
58-
componentName?: string;
59-
workflowNodeName?: string;
60-
};
61+
let updatedMainRootData: NodeDataType;
6162
let updatedClusterElements: ClusterElementsType;
6263

6364
if (
6465
currentNode.clusterRoot &&
65-
currentNode.workflowNodeName === rootClusterElementNodeData?.workflowNodeName &&
66+
currentNode.workflowNodeName === rootClusterElementNodeData.workflowNodeName &&
6667
!currentNode.isNestedClusterRoot
6768
) {
6869
updatedMainRootData = updateClusterRootElementField({
6970
currentComponentDefinition,
7071
currentOperationProperties,
7172
fieldUpdate,
72-
mainRootElement: mainClusterRootTask,
73+
mainRootElement: {
74+
...mainClusterRootTask,
75+
componentName: rootClusterElementNodeData.componentName,
76+
workflowNodeName: rootClusterElementNodeData.workflowNodeName,
77+
},
7378
});
7479
} else if (
7580
currentNode.clusterElementType &&
76-
currentNode.workflowNodeName !== rootClusterElementNodeData?.workflowNodeName
81+
currentNode.workflowNodeName !== rootClusterElementNodeData.workflowNodeName
7782
) {
78-
const clusterElements = mainClusterRootTask?.clusterElements;
83+
const clusterElements = mainClusterRootTask.clusterElements;
7984

8085
if (!clusterElements || Object.keys(clusterElements).length === 0) {
8186
return;
@@ -92,6 +97,8 @@ export default function saveClusterElementFieldChange({
9297
updatedMainRootData = {
9398
...mainClusterRootTask,
9499
clusterElements: updatedClusterElements,
100+
componentName: rootClusterElementNodeData.componentName,
101+
workflowNodeName: rootClusterElementNodeData.workflowNodeName,
95102
};
96103
} else {
97104
console.error('Unknown cluster element type or root element mismatch');
@@ -104,11 +111,7 @@ export default function saveClusterElementFieldChange({
104111
invalidateWorkflowQueries,
105112
nodeData: updatedMainRootData,
106113
onSuccess: () => {
107-
let commonUpdates: Omit<NodeDataType, 'componentName' | 'workflowNodeName'> & {
108-
componentName?: string;
109-
name: string;
110-
workflowNodeName?: string;
111-
} = {
114+
let commonUpdates: NodeDataType = {
112115
componentName,
113116
name,
114117
workflowNodeName,
@@ -138,12 +141,12 @@ export default function saveClusterElementFieldChange({
138141
setCurrentNode({
139142
...currentNode,
140143
...commonUpdates,
141-
} as NodeDataType);
144+
});
142145

143146
setCurrentComponent({
144147
...currentComponent,
145148
...commonUpdates,
146-
} as ComponentType);
149+
});
147150

148151
if (rootClusterElementNodeData) {
149152
if (currentNode.clusterRoot && !currentNode.isNestedClusterRoot) {

client/src/pages/platform/workflow-editor/utils/saveClusterElementNodesPosition.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ export default function saveClusterElementNodesPosition({
8282
// Save updated data but reset the position saving flag even when there are errors
8383
saveWorkflowDefinition({
8484
invalidateWorkflowQueries,
85-
nodeData: updatedNodeData,
85+
nodeData: {
86+
...updatedNodeData,
87+
componentName: rootClusterElementNodeData.componentName,
88+
workflowNodeName: rootClusterElementNodeData.workflowNodeName,
89+
},
8690
updateWorkflowMutation,
8791
})
8892
.catch((error) => {
@@ -109,7 +113,11 @@ export default function saveClusterElementNodesPosition({
109113

110114
saveWorkflowDefinition({
111115
invalidateWorkflowQueries,
112-
nodeData: updatedNodeData,
116+
nodeData: {
117+
...updatedNodeData,
118+
componentName: rootClusterElementNodeData.componentName,
119+
workflowNodeName: rootClusterElementNodeData.workflowNodeName,
120+
},
113121
updateWorkflowMutation,
114122
});
115123
}

client/src/pages/platform/workflow-editor/utils/saveWorkflowDefinition.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ type UpdateWorkflowRequestType = {
1717
interface SaveWorkflowDefinitionProps {
1818
decorative?: boolean;
1919
invalidateWorkflowQueries: () => void;
20-
nodeData?: Omit<NodeDataType, 'componentName' | 'workflowNodeName'> & {
21-
componentName?: string;
22-
workflowNodeName?: string;
23-
};
20+
nodeData?: NodeDataType;
2421
nodeIndex?: number;
2522
onSuccess?: () => void;
2623
placeholderId?: string;

0 commit comments

Comments
 (0)