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/nav/components/top_nav_container_view.vue')
-rw-r--r--app/assets/javascripts/nav/components/top_nav_container_view.vue39
1 files changed, 18 insertions, 21 deletions
diff --git a/app/assets/javascripts/nav/components/top_nav_container_view.vue b/app/assets/javascripts/nav/components/top_nav_container_view.vue
index 21ff3ebcd7d..6f98f85ff90 100644
--- a/app/assets/javascripts/nav/components/top_nav_container_view.vue
+++ b/app/assets/javascripts/nav/components/top_nav_container_view.vue
@@ -2,14 +2,15 @@
import FrequentItemsApp from '~/frequent_items/components/app.vue';
import eventHub from '~/frequent_items/event_hub';
import VuexModuleProvider from '~/vue_shared/components/vuex_module_provider.vue';
-import TopNavMenuItem from './top_nav_menu_item.vue';
+import TopNavMenuSections from './top_nav_menu_sections.vue';
export default {
components: {
FrequentItemsApp,
- TopNavMenuItem,
+ TopNavMenuSections,
VuexModuleProvider,
},
+ inheritAttrs: false,
props: {
frequentItemsVuexModule: {
type: String,
@@ -19,6 +20,11 @@ export default {
type: String,
required: true,
},
+ containerClass: {
+ type: String,
+ required: false,
+ default: '',
+ },
linksPrimary: {
type: Array,
required: false,
@@ -31,11 +37,11 @@ export default {
},
},
computed: {
- linkGroups() {
+ menuSections() {
return [
- { key: 'primary', links: this.linksPrimary },
- { key: 'secondary', links: this.linksSecondary },
- ].filter((x) => x.links?.length);
+ { id: 'primary', menuItems: this.linksPrimary },
+ { id: 'secondary', menuItems: this.linksSecondary },
+ ].filter((x) => x.menuItems?.length);
},
},
mounted() {
@@ -49,26 +55,17 @@ export default {
<template>
<div class="top-nav-container-view gl-display-flex gl-flex-direction-column">
- <div class="frequent-items-dropdown-container gl-w-auto">
+ <div
+ class="frequent-items-dropdown-container gl-w-auto"
+ :class="containerClass"
+ data-testid="frequent-items-container"
+ >
<div class="frequent-items-dropdown-content gl-w-full! gl-pt-0!">
<vuex-module-provider :vuex-module="frequentItemsVuexModule">
<frequent-items-app v-bind="$attrs" />
</vuex-module-provider>
</div>
</div>
- <div
- v-for="({ key, links }, groupIndex) in linkGroups"
- :key="key"
- :class="{ 'gl-mt-3': groupIndex !== 0 }"
- class="gl-mt-auto gl-pt-3 gl-border-1 gl-border-t-solid gl-border-gray-100"
- data-testid="menu-item-group"
- >
- <top-nav-menu-item
- v-for="(link, linkIndex) in links"
- :key="link.title"
- :menu-item="link"
- :class="{ 'gl-mt-1': linkIndex !== 0 }"
- />
- </div>
+ <top-nav-menu-sections class="gl-mt-auto" :sections="menuSections" with-top-border />
</div>
</template>