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

responsive_home.vue « components « nav « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c8f2f0bfb10ac7601cddca4752a687f62710718c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<script>
import { GlTooltipDirective } from '@gitlab/ui';
import TopNavMenuItem from './top_nav_menu_item.vue';
import TopNavMenuSections from './top_nav_menu_sections.vue';
import TopNavNewDropdown from './top_nav_new_dropdown.vue';

const NEW_VIEW = 'new';
const SEARCH_VIEW = 'search';

export default {
  components: {
    TopNavMenuItem,
    TopNavMenuSections,
    TopNavNewDropdown,
  },
  directives: {
    GlTooltip: GlTooltipDirective,
  },
  props: {
    navData: {
      type: Object,
      required: true,
    },
  },
  computed: {
    menuSections() {
      return [
        { id: 'primary', menuItems: this.navData.primary },
        { id: 'secondary', menuItems: this.navData.secondary },
      ].filter((x) => x.menuItems?.length);
    },
    newDropdownViewModel() {
      return this.navData.views[NEW_VIEW];
    },
    searchMenuItem() {
      return this.navData.views[SEARCH_VIEW];
    },
  },
};
</script>

<template>
  <div>
    <header class="gl-display-flex gl-align-items-center gl-py-4 gl-pl-4">
      <h1 class="gl-m-0 gl-font-size-h2 gl-reset-color gl-mr-auto">{{ __('Menu') }}</h1>
      <top-nav-menu-item
        v-if="searchMenuItem"
        v-gl-tooltip="{ title: searchMenuItem.title }"
        class="gl-ml-3"
        :menu-item="searchMenuItem"
        icon-only
      />
      <top-nav-new-dropdown
        v-if="newDropdownViewModel"
        v-gl-tooltip="{ title: newDropdownViewModel.title }"
        :view-model="newDropdownViewModel"
        class="gl-ml-3"
      />
    </header>
    <top-nav-menu-sections class="gl-h-full" :sections="menuSections" v-on="$listeners" />
  </div>
</template>