Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/super_sidebar/components/sidebar_menu.vue')
-rw-r--r--app/assets/javascripts/super_sidebar/components/sidebar_menu.vue49
1 files changed, 34 insertions, 15 deletions
diff --git a/app/assets/javascripts/super_sidebar/components/sidebar_menu.vue b/app/assets/javascripts/super_sidebar/components/sidebar_menu.vue
index 12abd727ef0..08af9232107 100644
--- a/app/assets/javascripts/super_sidebar/components/sidebar_menu.vue
+++ b/app/assets/javascripts/super_sidebar/components/sidebar_menu.vue
@@ -89,6 +89,9 @@ export default {
supportsPins() {
return PANELS_WITH_PINS.includes(this.panelType);
},
+ hasStaticItems() {
+ return this.staticItems.length > 0;
+ },
},
methods: {
createPin(itemId) {
@@ -126,34 +129,50 @@ export default {
Sentry.captureException(e);
});
},
+ isSection(navItem) {
+ return navItem.items?.length;
+ },
},
};
</script>
<template>
<nav class="gl-p-2 gl-relative">
- <template v-if="staticItems.length > 0">
- <ul class="gl-p-0 gl-m-0">
- <nav-item v-for="item in staticItems" :key="item.id" :item="item" is-static />
- </ul>
- <hr aria-hidden="true" class="gl-my-2 gl-mx-4" />
- </template>
+ <ul v-if="hasStaticItems" class="gl-p-0 gl-m-0">
+ <nav-item v-for="item in staticItems" :key="item.id" :item="item" is-static />
+ </ul>
<pinned-section
v-if="supportsPins"
+ separated
:items="pinnedItems"
@pin-remove="destroyPin"
@pin-reorder="movePin"
/>
+ <hr
+ v-if="supportsPins"
+ aria-hidden="true"
+ class="gl-my-2 gl-mx-4"
+ data-testid="main-menu-separator"
+ />
<ul class="gl-p-0 gl-list-style-none">
- <component
- :is="item.items && item.items.length ? 'MenuSection' : 'NavItem'"
- v-for="item in nonStaticItems"
- :key="item.id"
- :item="item"
- tag="li"
- @pin-add="createPin"
- @pin-remove="destroyPin"
- />
+ <template v-for="item in nonStaticItems">
+ <menu-section
+ v-if="isSection(item)"
+ :key="item.id"
+ :item="item"
+ :separated="item.separated"
+ @pin-add="createPin"
+ @pin-remove="destroyPin"
+ />
+ <nav-item
+ v-else
+ :key="item.id"
+ :item="item"
+ tag="li"
+ @pin-add="createPin"
+ @pin-remove="destroyPin"
+ />
+ </template>
</ul>
</nav>
</template>