diff --git a/src/modules/manager/workflowTemplates/components/CapabilityEditors/StageOfGeneralTaskEditor.tsx b/src/modules/manager/workflowTemplates/components/CapabilityEditors/StageOfGeneralTaskEditor.tsx index 3623901..4ab4605 100644 --- a/src/modules/manager/workflowTemplates/components/CapabilityEditors/StageOfGeneralTaskEditor.tsx +++ b/src/modules/manager/workflowTemplates/components/CapabilityEditors/StageOfGeneralTaskEditor.tsx @@ -16,7 +16,7 @@ import { export const StageOfGeneralTaskEditor: React.FC = ( props, ) => { - const { task, onChange, onValidate, fieldErrors } = props; + const { task, onChange, onValidate, onValidateTask, fieldErrors } = props; const [tasksMetadata, setTasksMetadata] = React.useState([]); @@ -52,6 +52,9 @@ export const StageOfGeneralTaskEditor: React.FC = ( const isValid = Object.keys(errors).length === 0; + // Mark the child task as valid/invalid + onValidateTask?.(newTask.config.guid as string, isValid); + task.config.tasks = updatedTasks; onChange(task); diff --git a/src/modules/manager/workflowTemplates/components/TasksEditor.tsx b/src/modules/manager/workflowTemplates/components/TasksEditor.tsx index a63e9b7..4239485 100644 --- a/src/modules/manager/workflowTemplates/components/TasksEditor.tsx +++ b/src/modules/manager/workflowTemplates/components/TasksEditor.tsx @@ -106,7 +106,8 @@ const TaskEditorComponent: React.FC = ({ task={task} tasks={tasks} onChange={handleTaskChange} - fieldErrors={fieldErrors} // ← THIS IS THE MISSING PIECE + fieldErrors={fieldErrors} + onValidateTask={onValidate} /> ); })} diff --git a/src/modules/manager/workflowTemplates/components/useCapabilityDefaults.tsx b/src/modules/manager/workflowTemplates/components/useCapabilityDefaults.tsx index 14ce243..9cbd0eb 100644 --- a/src/modules/manager/workflowTemplates/components/useCapabilityDefaults.tsx +++ b/src/modules/manager/workflowTemplates/components/useCapabilityDefaults.tsx @@ -17,6 +17,7 @@ export interface CapabilityEditorProps { tasks: TaskDefinition[]; onChange: (updated: TaskDefinition) => void; onValidate: (result: TaskValidationResult) => void; + onValidateTask?: (taskId: string, isValid: boolean) => void; fieldErrors: Record; }