2020-09-17 09:09:32 +00:00
|
|
|
<script>
|
|
|
|
import { GlTabs, GlTab, GlBadge } from '@gitlab/ui';
|
|
|
|
|
|
|
|
export default {
|
|
|
|
components: {
|
|
|
|
GlTabs,
|
|
|
|
GlTab,
|
|
|
|
GlBadge,
|
|
|
|
},
|
|
|
|
props: {
|
|
|
|
tabs: {
|
|
|
|
type: Array,
|
|
|
|
required: true,
|
|
|
|
},
|
|
|
|
tabCounts: {
|
|
|
|
type: Object,
|
2020-10-23 09:08:41 +00:00
|
|
|
required: false,
|
|
|
|
default: null,
|
2020-09-17 09:09:32 +00:00
|
|
|
},
|
|
|
|
currentTab: {
|
|
|
|
type: String,
|
|
|
|
required: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
isTabActive(tabName) {
|
|
|
|
return tabName === this.currentTab;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<div class="top-area">
|
2021-01-28 15:09:06 +00:00
|
|
|
<gl-tabs
|
|
|
|
class="gl-display-flex gl-flex-fill-1 gl-p-0 gl-m-0 mobile-separator issuable-state-filters"
|
|
|
|
nav-class="gl-border-b-0"
|
|
|
|
>
|
2020-09-17 09:09:32 +00:00
|
|
|
<gl-tab
|
|
|
|
v-for="tab in tabs"
|
|
|
|
:key="tab.id"
|
|
|
|
:active="isTabActive(tab.name)"
|
|
|
|
@click="$emit('click', tab.name)"
|
|
|
|
>
|
|
|
|
<template #title>
|
|
|
|
<span :title="tab.titleTooltip">{{ tab.title }}</span>
|
2021-01-28 15:09:06 +00:00
|
|
|
<gl-badge v-if="tabCounts" variant="neutral" size="sm" class="gl-tab-counter-badge">{{
|
2020-09-17 09:09:32 +00:00
|
|
|
tabCounts[tab.name]
|
|
|
|
}}</gl-badge>
|
|
|
|
</template>
|
|
|
|
</gl-tab>
|
|
|
|
</gl-tabs>
|
|
|
|
<div class="nav-controls">
|
|
|
|
<slot name="nav-actions"></slot>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|