@@ -3,6 +3,7 @@ import {useAnalytics} from '@/shared/hooks/useAnalytics';
3
3
import {
4
4
ActionDefinitionApi ,
5
5
ComponentDefinitionApi ,
6
+ TaskDispatcherDefinition ,
6
7
TriggerDefinitionApi ,
7
8
} from '@/shared/middleware/platform/configuration' ;
8
9
import { ActionDefinitionKeys } from '@/shared/queries/platform/actionDefinitions.queries' ;
@@ -11,6 +12,7 @@ import {TriggerDefinitionKeys} from '@/shared/queries/platform/triggerDefinition
11
12
import {
12
13
ClickedDefinitionType ,
13
14
NodeDataType ,
15
+ PropertyAllType ,
14
16
TaskDispatcherContextType ,
15
17
UpdateWorkflowMutationType ,
16
18
} from '@/shared/types' ;
@@ -27,7 +29,8 @@ import {TASK_DISPATCHER_CONFIG} from '../utils/taskDispatcherConfig';
27
29
28
30
async function createWorkflowNodeData (
29
31
droppedNode : ClickedDefinitionType ,
30
- queryClient : QueryClient
32
+ queryClient : QueryClient ,
33
+ taskDispatcherDefinitions : TaskDispatcherDefinition [ ]
31
34
) : Promise < { nodeData : NodeDataType ; operationName ?: string } > {
32
35
const baseNodeData : NodeDataType = {
33
36
componentName : droppedNode . name ! ,
@@ -41,9 +44,13 @@ async function createWorkflowNodeData(
41
44
} ;
42
45
43
46
if ( baseNodeData . taskDispatcher ) {
47
+ const taskDispatcherDefinition = taskDispatcherDefinitions . find (
48
+ ( definition ) => definition . name === baseNodeData . componentName
49
+ ) ;
50
+
44
51
const initialParameters = TASK_DISPATCHER_CONFIG [
45
52
baseNodeData . componentName as keyof typeof TASK_DISPATCHER_CONFIG
46
- ] ?. getInitialParameters ( [ ] ) ;
53
+ ] ?. getInitialParameters ( ( taskDispatcherDefinition ?. properties as Array < PropertyAllType > ) || [ ] ) ;
47
54
48
55
return {
49
56
nodeData : {
@@ -166,8 +173,10 @@ async function saveDroppedNode({
166
173
167
174
export default function useHandleDrop ( {
168
175
invalidateWorkflowQueries,
176
+ taskDispatcherDefinitions,
169
177
} : {
170
178
invalidateWorkflowQueries : ( ) => void ;
179
+ taskDispatcherDefinitions : TaskDispatcherDefinition [ ] ;
171
180
} ) : [
172
181
( targetNode : Node , droppedNode : ClickedDefinitionType ) => void ,
173
182
( targetEdge : Edge , droppedNode : ClickedDefinitionType ) => void ,
@@ -178,7 +187,11 @@ export default function useHandleDrop({
178
187
const queryClient = useQueryClient ( ) ;
179
188
180
189
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
+ ) ;
182
195
183
196
await saveDroppedNode ( {
184
197
captureComponentUsed,
@@ -195,7 +208,11 @@ export default function useHandleDrop({
195
208
196
209
async function handleDropOnWorkflowEdge ( targetEdge : Edge , droppedNode : ClickedDefinitionType ) {
197
210
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
+ ) ;
199
216
200
217
const insertIndex = calculateNodeInsertIndex ( targetEdge . target ) ;
201
218
@@ -213,7 +230,11 @@ export default function useHandleDrop({
213
230
}
214
231
215
232
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
+ ) ;
217
238
218
239
await saveDroppedNode ( {
219
240
captureComponentUsed,
0 commit comments