diff --git a/src/components/common/TreeExplorer.vue b/src/components/common/TreeExplorer.vue index 2868955df..4ef4562fd 100644 --- a/src/components/common/TreeExplorer.vue +++ b/src/components/common/TreeExplorer.vue @@ -52,9 +52,6 @@ provide('selectionKeys', selectionKeys) const props = defineProps<{ roots: TreeExplorerNode[] class?: string - extraMenuItems?: - | MenuItem[] - | ((targetNode: RenderedTreeExplorerNode) => MenuItem[]) }>() const emit = defineEmits<{ (e: 'nodeClick', node: RenderedTreeExplorerNode, event: MouseEvent): void @@ -101,6 +98,13 @@ const onNodeContentClick = (e: MouseEvent, node: RenderedTreeExplorerNode) => { const menu = ref(null) const menuTargetNode = ref(null) provide('menuTargetNode', menuTargetNode) +const extraMenuItems = computed(() => { + return menuTargetNode.value?.contextMenuItems + ? typeof menuTargetNode.value.contextMenuItems === 'function' + ? menuTargetNode.value.contextMenuItems(menuTargetNode.value) + : menuTargetNode.value.contextMenuItems + : [] +}) const renameEditingNode = ref(null) provide('renameEditingNode', renameEditingNode) @@ -126,11 +130,7 @@ const menuItems = computed(() => command: () => deleteCommand(menuTargetNode.value), visible: menuTargetNode.value?.handleDelete !== undefined }, - ...(props.extraMenuItems - ? typeof props.extraMenuItems === 'function' - ? props.extraMenuItems(menuTargetNode.value) - : props.extraMenuItems - : []) + ...extraMenuItems.value ].map((menuItem) => ({ ...menuItem, command: wrapCommandWithErrorHandler(menuItem.command) diff --git a/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue b/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue index fa201a269..30fca02c9 100644 --- a/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue +++ b/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue @@ -49,7 +49,6 @@ class="node-lib-tree-explorer mt-1" :roots="renderedRoot.children" v-model:expandedKeys="expandedKeys" - @nodeClick="handleNodeClick" >