diff --git a/packages/design-system/src/components/N8nMenu/Menu.vue b/packages/design-system/src/components/N8nMenu/Menu.vue
index 7a429f6fd3..b5ed60260a 100644
--- a/packages/design-system/src/components/N8nMenu/Menu.vue
+++ b/packages/design-system/src/components/N8nMenu/Menu.vue
@@ -23,7 +23,7 @@
:tooltipDelay="tooltipDelay"
:mode="mode"
:activeTab="activeTab"
- @select="onSelect"
+ :handle-select="onSelect"
/>
@@ -38,7 +38,7 @@
:tooltipDelay="tooltipDelay"
:mode="mode"
:activeTab="activeTab"
- @select="onSelect"
+ :handle-select="onSelect"
/>
@@ -139,17 +139,26 @@ export default defineComponent({
},
},
methods: {
- onSelect(option: string): void {
- if (this.mode === 'tabs') {
- this.activeTab = option;
+ onSelect(item: IMenuItem): void {
+ if (item && item.type === 'link' && item.properties) {
+ const href: string = item.properties.href;
+ if (!href) {
+ return;
+ }
+
+ if (item.properties.newWindow) {
+ window.open(href);
+ } else {
+ window.location.assign(item.properties.href);
+ }
}
- this.$emit('select', option);
- this.$emit('update:modelValue', option);
- },
- },
- watch: {
- modelValue(value: string) {
- this.activeTab = value;
+
+ if (this.mode === 'tabs') {
+ this.activeTab = item.id;
+ }
+
+ this.$emit('select', item.id);
+ this.$emit('update:modelValue', item.id);
},
},
});
diff --git a/packages/design-system/src/components/N8nMenuItem/MenuItem.vue b/packages/design-system/src/components/N8nMenuItem/MenuItem.vue
index c7f775c12f..007f5540df 100644
--- a/packages/design-system/src/components/N8nMenuItem/MenuItem.vue
+++ b/packages/design-system/src/components/N8nMenuItem/MenuItem.vue
@@ -22,14 +22,15 @@
{{ item.label }}
void>,
+ },
},
computed: {
availableChildren(): IMenuItem[] {
@@ -156,22 +160,6 @@ export default defineComponent({
return item.id === this.activeTab;
}
},
- onItemClick(item: IMenuItem) {
- if (item && item.type === 'link' && item.properties) {
- const href: string = item.properties.href;
- if (!href) {
- return;
- }
-
- if (item.properties.newWindow) {
- window.open(href);
- } else {
- window.location.assign(item.properties.href);
- }
- }
-
- this.$emit('select', item.id);
- },
},
});