From 4daf905ce264f6f76045a508e2f9ed849f2b1f5e Mon Sep 17 00:00:00 2001 From: OlegIvaniv Date: Wed, 28 Dec 2022 09:21:22 +0100 Subject: [PATCH] fix(editor): Fix displaying of some trigger nodes in the creator panel (#5040) --- packages/editor-ui/src/stores/nodeCreator.ts | 27 +++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/packages/editor-ui/src/stores/nodeCreator.ts b/packages/editor-ui/src/stores/nodeCreator.ts index 6f4c384c0a..78cf332317 100644 --- a/packages/editor-ui/src/stores/nodeCreator.ts +++ b/packages/editor-ui/src/stores/nodeCreator.ts @@ -306,8 +306,16 @@ export const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, { return nodesWithActions; }, mergedAppNodes(): INodeTypeDescription[] { - const mergedNodes = this.visibleNodesWithActions.reduce( - (acc: Record, node: INodeTypeDescription) => { + const mergedNodes = [...this.visibleNodesWithActions] + // Sort triggers so they are always on top and when later get merged + // they won't be discarded if they have the same name as a core node which doesn't contain actions + .sort((a, b) => { + if (a.group.includes('trigger')) return -1; + if (b.group.includes('trigger')) return 1; + + return 0; + }) + .reduce((acc: Record, node: INodeTypeDescription) => { const clonedNode = deepCopy(node); const isCoreNode = node.codex?.categories?.includes(CORE_NODES_CATEGORY); const actions = node.actions || []; @@ -324,14 +332,15 @@ export const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, { acc[normalizedName].displayName = node.displayName.replace('Trigger', ''); } - acc[normalizedName].actions = filterSinglePlaceholderAction( - acc[normalizedName].actions || [], - ); return acc; - }, - {}, - ); - return Object.values(mergedNodes); + }, {}); + + const filteredNodes = Object.values(mergedNodes).map((node) => ({ + ...node, + actions: filterSinglePlaceholderAction(node.actions || []), + })); + + return filteredNodes; }, getNodeTypesWithManualTrigger: () =>