Skip to content

Commit e22f64c

Browse files
committed
2951 - fix dropped task dispatchers not being saved with proper default parameters
1 parent ccd0c88 commit e22f64c

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ const WorkflowEditor = ({
8080

8181
const [handleDropOnPlaceholderNode, handleDropOnWorkflowEdge, handleDropOnTriggerNode] = useHandleDrop({
8282
invalidateWorkflowQueries,
83+
taskDispatcherDefinitions,
8384
});
8485

8586
const nodeTypes = useMemo(

client/src/pages/platform/workflow-editor/hooks/useHandleDrop.tsx

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {useAnalytics} from '@/shared/hooks/useAnalytics';
33
import {
44
ActionDefinitionApi,
55
ComponentDefinitionApi,
6+
TaskDispatcherDefinition,
67
TriggerDefinitionApi,
78
} from '@/shared/middleware/platform/configuration';
89
import {ActionDefinitionKeys} from '@/shared/queries/platform/actionDefinitions.queries';
@@ -11,6 +12,7 @@ import {TriggerDefinitionKeys} from '@/shared/queries/platform/triggerDefinition
1112
import {
1213
ClickedDefinitionType,
1314
NodeDataType,
15+
PropertyAllType,
1416
TaskDispatcherContextType,
1517
UpdateWorkflowMutationType,
1618
} from '@/shared/types';
@@ -27,7 +29,8 @@ import {TASK_DISPATCHER_CONFIG} from '../utils/taskDispatcherConfig';
2729

2830
async function createWorkflowNodeData(
2931
droppedNode: ClickedDefinitionType,
30-
queryClient: QueryClient
32+
queryClient: QueryClient,
33+
taskDispatcherDefinitions: TaskDispatcherDefinition[]
3134
): Promise<{nodeData: NodeDataType; operationName?: string}> {
3235
const baseNodeData: NodeDataType = {
3336
componentName: droppedNode.name!,
@@ -41,9 +44,13 @@ async function createWorkflowNodeData(
4144
};
4245

4346
if (baseNodeData.taskDispatcher) {
47+
const taskDispatcherDefinition = taskDispatcherDefinitions.find(
48+
(definition) => definition.name === baseNodeData.componentName
49+
);
50+
4451
const initialParameters = TASK_DISPATCHER_CONFIG[
4552
baseNodeData.componentName as keyof typeof TASK_DISPATCHER_CONFIG
46-
]?.getInitialParameters([]);
53+
]?.getInitialParameters((taskDispatcherDefinition?.properties as Array<PropertyAllType>) || []);
4754

4855
return {
4956
nodeData: {
@@ -166,8 +173,10 @@ async function saveDroppedNode({
166173

167174
export default function useHandleDrop({
168175
invalidateWorkflowQueries,
176+
taskDispatcherDefinitions,
169177
}: {
170178
invalidateWorkflowQueries: () => void;
179+
taskDispatcherDefinitions: TaskDispatcherDefinition[];
171180
}): [
172181
(targetNode: Node, droppedNode: ClickedDefinitionType) => void,
173182
(targetEdge: Edge, droppedNode: ClickedDefinitionType) => void,
@@ -178,7 +187,11 @@ export default function useHandleDrop({
178187
const queryClient = useQueryClient();
179188

180189
async function handleDropOnPlaceholderNode(targetNode: Node, droppedNode: ClickedDefinitionType) {
181-
const {nodeData, operationName} = await createWorkflowNodeData(droppedNode, queryClient);
190+
const {nodeData, operationName} = await createWorkflowNodeData(
191+
droppedNode,
192+
queryClient,
193+
taskDispatcherDefinitions
194+
);
182195

183196
await saveDroppedNode({
184197
captureComponentUsed,
@@ -195,7 +208,11 @@ export default function useHandleDrop({
195208

196209
async function handleDropOnWorkflowEdge(targetEdge: Edge, droppedNode: ClickedDefinitionType) {
197210
const {nodes} = useWorkflowDataStore.getState();
198-
const {nodeData, operationName} = await createWorkflowNodeData(droppedNode, queryClient);
211+
const {nodeData, operationName} = await createWorkflowNodeData(
212+
droppedNode,
213+
queryClient,
214+
taskDispatcherDefinitions
215+
);
199216

200217
const insertIndex = calculateNodeInsertIndex(targetEdge.target);
201218

@@ -213,7 +230,11 @@ export default function useHandleDrop({
213230
}
214231

215232
async function handleDropOnTriggerNode(droppedNode: ClickedDefinitionType) {
216-
const {nodeData, operationName} = await createWorkflowNodeData(droppedNode, queryClient);
233+
const {nodeData, operationName} = await createWorkflowNodeData(
234+
droppedNode,
235+
queryClient,
236+
taskDispatcherDefinitions
237+
);
217238

218239
await saveDroppedNode({
219240
captureComponentUsed,

0 commit comments

Comments
 (0)