From 9c34e3d534e46191a82d99b23786f0bba945a2fb Mon Sep 17 00:00:00 2001 From: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com> Date: Mon, 14 Apr 2025 14:06:26 +0200 Subject: [PATCH] feat(editor): Tweak nodes panel to update AI category name and highlight AI Transform node (#14608) --- .../components/Node/NodeCreator/viewsData.ts | 36 +++++++++++-------- .../src/plugins/i18n/locales/en.json | 2 +- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/packages/frontend/editor-ui/src/components/Node/NodeCreator/viewsData.ts b/packages/frontend/editor-ui/src/components/Node/NodeCreator/viewsData.ts index c3e0c21886..ba92d2be48 100644 --- a/packages/frontend/editor-ui/src/components/Node/NodeCreator/viewsData.ts +++ b/packages/frontend/editor-ui/src/components/Node/NodeCreator/viewsData.ts @@ -110,25 +110,29 @@ interface NodeView { items: NodeViewItem[]; } +function getNodeView(node: INodeTypeDescription) { + return { + key: node.name, + type: 'node', + properties: { + group: [], + name: node.name, + displayName: node.displayName, + title: node.displayName, + description: node.description, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + icon: node.icon!, + iconUrl: node.iconUrl, + }, + }; +} + function getAiNodesBySubcategory(nodes: INodeTypeDescription[], subcategory: string) { return nodes .filter( (node) => !node.hidden && node.codex?.subcategories?.[AI_SUBCATEGORY]?.includes(subcategory), ) - .map((node) => ({ - key: node.name, - type: 'node', - properties: { - group: [], - name: node.name, - displayName: node.displayName, - title: node.displayName, - description: node.description, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - icon: node.icon!, - iconUrl: node.iconUrl, - }, - })) + .map(getNodeView) .sort((a, b) => a.properties.displayName.localeCompare(b.properties.displayName)); } @@ -145,6 +149,9 @@ export function AIView(_nodes: SimplifiedNodeType[]): NodeView { const websiteCategoryURL = templatesStore.constructTemplateRepositoryURL(websiteCategoryURLParams); + const aiTransformNode = nodeTypesStore.getNodeType(AI_TRANSFORM_NODE_TYPE); + const transformNode = aiTransformNode ? [getNodeView(aiTransformNode)] : []; + return { value: AI_NODE_CREATOR_VIEW, title: i18n.baseText('nodeCreator.aiPanel.aiNodes'), @@ -167,6 +174,7 @@ export function AIView(_nodes: SimplifiedNodeType[]): NodeView { }, ...agentNodes, ...chainNodes, + ...transformNode, { key: AI_OTHERS_NODE_CREATOR_VIEW, type: 'view', diff --git a/packages/frontend/editor-ui/src/plugins/i18n/locales/en.json b/packages/frontend/editor-ui/src/plugins/i18n/locales/en.json index bcb40e75c6..5278a7de7e 100644 --- a/packages/frontend/editor-ui/src/plugins/i18n/locales/en.json +++ b/packages/frontend/editor-ui/src/plugins/i18n/locales/en.json @@ -1278,7 +1278,7 @@ "nodeCreator.aiPanel.selectAiNode": "Select an Al Node to add to your workflow", "nodeCreator.aiPanel.nodesForAi": "Build autonomous agents, summarize or search documents, etc.", "nodeCreator.aiPanel.newTag": "New", - "nodeCreator.aiPanel.langchainAiNodes": "Advanced AI", + "nodeCreator.aiPanel.langchainAiNodes": "AI", "nodeCreator.aiPanel.title": "When should this workflow run?", "nodeCreator.aiPanel.linkItem.description": "See what's possible and get started 5x faster", "nodeCreator.aiPanel.linkItem.title": "AI Templates",