diff --git a/src/modules/manager/workflowTemplates/components/TaskList.tsx b/src/modules/manager/workflowTemplates/components/TaskList.tsx index 95e3654..3141d42 100644 --- a/src/modules/manager/workflowTemplates/components/TaskList.tsx +++ b/src/modules/manager/workflowTemplates/components/TaskList.tsx @@ -9,6 +9,7 @@ import { SelectableList } from "../../../../components/common/SelectableList"; import { sortTasksTopologically } from "./workflowGraphUtils"; import { useCapabilityDefaults, validateTask } from "./useCapabilityDefaults"; import ValidationErrorIcon from "../../../../components/validationErrorIcon"; +import TaskNameDisplayPanel from "./TaskNameDisplayPanel"; interface TaskListProps { tasks: TaskDefinition[]; @@ -104,20 +105,13 @@ const TaskList: React.FC = ({ selectedValue={selectedTask} renderLabel={(x) => { if (x) { - const meta = taskMetadataByType.get(x.type); - return ( - <> - - {x.config.name as string} - { - + + /> ); } else return <>; }} diff --git a/src/modules/manager/workflowTemplates/components/TaskNameDisplayPanel.tsx b/src/modules/manager/workflowTemplates/components/TaskNameDisplayPanel.tsx new file mode 100644 index 0000000..5dea5b9 --- /dev/null +++ b/src/modules/manager/workflowTemplates/components/TaskNameDisplayPanel.tsx @@ -0,0 +1,49 @@ +import { useEffect } from "react"; +import templateVersionsService, { + TaskMetadata, + TaskDefinition, +} from "../services/WorkflowTemplateService"; +import React from "react"; +import FontAwesomeStringIcon from "../../../../components/common/FontAwesomeStringIcon"; +import ValidationErrorIcon from "../../../../components/validationErrorIcon"; + +export interface TaskNameDisplayPanel { + task: TaskDefinition; + showValidationErrorIcon: boolean; +} + +const TaskNameDisplayPanel: React.FC = ({ + task, + showValidationErrorIcon = false, +}) => { + const [tasksMetadata, setTasksMetadata] = React.useState([]); + + useEffect(() => { + const fetchTaskMetadata = async () => { + const meta = await templateVersionsService.getTaskMetadata("GeneralTask"); + setTasksMetadata(meta); + }; + + fetchTaskMetadata(); + }, []); + + const taskMetadataByType = React.useMemo(() => { + const map = new Map(); + tasksMetadata.forEach((meta) => { + map.set(meta.taskType, meta); + }); + return map; + }, [tasksMetadata]); + + const meta = taskMetadataByType.get(task.type); + + return ( +
+ + {task.config.name as string} + {} +
+ ); +}; + +export default TaskNameDisplayPanel; diff --git a/src/modules/manager/workflowTemplates/components/VisualisetTab.tsx b/src/modules/manager/workflowTemplates/components/VisualisetTab.tsx index 08609a0..810ecfe 100644 --- a/src/modules/manager/workflowTemplates/components/VisualisetTab.tsx +++ b/src/modules/manager/workflowTemplates/components/VisualisetTab.tsx @@ -7,6 +7,7 @@ import ValidationErrorIcon from "../../../../components/validationErrorIcon"; import { sortTasksTopologically } from "./workflowGraphUtils"; import { useTranslation } from "react-i18next"; import { Namespaces } from "../../../../i18n/i18n"; +import TaskNameDisplayPanel from "./TaskNameDisplayPanel"; interface VisualiserTabProps { data: CreateWorkflowTemplateVersion; @@ -684,10 +685,12 @@ const VisualiserTab: React.FC = ({ onMouseLeave={() => setHoveredGuid(null)} >
- - {(task.config.name as string) || task.type}
);