import { useState } from "react"; import { TaskDefinition } from "../services/WorkflowTemplateService"; import { TaskCoreEditor } from "./CapabilityEditors/TaskCoreEditor"; export interface TaskValidationResult { isValid: boolean; errors: Record; } interface TaskEditorProps { task: TaskDefinition; allTasks: TaskDefinition[]; allowedTasks: TaskMetadata[]; onChange: (updatedTask: TaskDefinition) => void; onValidate: (taskId: string, isValid: boolean) => void; } export const TaskEditor: React.FC = ({ task, allTasks, allowedTasks, onChange, onValidate, }) => { const [validationMap, setValidationMap] = useState< Record >({}); const onCapabilityValidate = ( capabilityName: string, result: TaskValidationResult, ) => { setValidationMap((prev) => { const updated = { ...prev, [capabilityName]: result }; const allValid = Object.values(updated).every((r) => r.isValid); onValidate(task.config.guid as string, allValid); return updated; }); }; return ( <> onCapabilityValidate("core", result)} /> ); };