diff --git a/packages/frontend/editor-ui/src/components/TestDefinition/EditDefinition/NodesPinning.vue b/packages/frontend/editor-ui/src/components/TestDefinition/EditDefinition/NodesPinning.vue index 687f18006a..4cfdcdb86e 100644 --- a/packages/frontend/editor-ui/src/components/TestDefinition/EditDefinition/NodesPinning.vue +++ b/packages/frontend/editor-ui/src/components/TestDefinition/EditDefinition/NodesPinning.vue @@ -11,6 +11,7 @@ import { N8nTooltip } from '@n8n/design-system'; import { createEventBus } from '@n8n/utils/event-bus'; import { computed, onMounted, ref, useCssModule } from 'vue'; import { useRoute, useRouter } from 'vue-router'; +import type { INodeTypeDescription } from 'n8n-workflow'; const workflowsStore = useWorkflowsStore(); const nodeTypesStore = useNodeTypesStore(); @@ -51,6 +52,23 @@ const { nodes: mappedNodes, connections: mappedConnections } = useCanvasMapping( connections, workflowObject, }); + +const nodeTypeDescriptions = computed(() => { + return nodes.value.reduce>((acc, node) => { + const key = `${node.type}@${node.typeVersion}`; + if (acc[key]) { + return acc; + } + + const nodeTypeDescription = nodeTypesStore.getNodeType(node.type, node.typeVersion); + if (nodeTypeDescription) { + acc[key] = nodeTypeDescription; + } + + return acc; + }, {}); +}); + async function loadData() { workflowsStore.resetState(); resetWorkspace(); @@ -141,6 +159,7 @@ onMounted(loadData); :class="{ [$style.canvas]: true }" :nodes="mappedNodes" :connections="mappedConnections" + :node-type-descriptions="nodeTypeDescriptions" :show-bug-reporting-button="false" :read-only="true" :event-bus="eventBus" diff --git a/packages/frontend/editor-ui/src/components/canvas/Canvas.vue b/packages/frontend/editor-ui/src/components/canvas/Canvas.vue index f82931ae89..0a2ac3c3d5 100644 --- a/packages/frontend/editor-ui/src/components/canvas/Canvas.vue +++ b/packages/frontend/editor-ui/src/components/canvas/Canvas.vue @@ -97,8 +97,8 @@ const props = withDefaults( defineProps<{ id?: string; nodes: CanvasNode[]; - nodeTypeDescriptions: Record; connections: CanvasConnection[]; + nodeTypeDescriptions?: Record; controlsPosition?: PanelPosition; eventBus?: EventBus; readOnly?: boolean; @@ -110,6 +110,7 @@ const props = withDefaults( id: 'canvas', nodes: () => [], connections: () => [], + nodeTypeDescriptions: () => ({}), controlsPosition: PanelPosition.BottomLeft, eventBus: () => createEventBus(), readOnly: false, diff --git a/packages/frontend/editor-ui/src/components/canvas/WorkflowCanvas.vue b/packages/frontend/editor-ui/src/components/canvas/WorkflowCanvas.vue index aaa5b00338..6e2b1a782a 100644 --- a/packages/frontend/editor-ui/src/components/canvas/WorkflowCanvas.vue +++ b/packages/frontend/editor-ui/src/components/canvas/WorkflowCanvas.vue @@ -99,8 +99,8 @@ onNodesInitialized(() => { v-if="workflow" :id="id" :nodes="mappedNodes" - :node-type-descriptions="nodeTypeDescriptions" :connections="mappedConnections" + :node-type-descriptions="nodeTypeDescriptions" :event-bus="eventBus" :read-only="readOnly" v-bind="$attrs"