gitlab-org--gitlab-foss/app/assets/javascripts/vue_shared/components/tabs/tab.vue

48 lines
712 B
Vue

<script>
export default {
props: {
title: {
type: String,
required: false,
default: '',
},
active: {
type: Boolean,
required: false,
default: false,
},
},
data() {
return {
// props can't be updated, so we map it to data where we can
localActive: this.active,
};
},
watch: {
active() {
this.localActive = this.active;
},
},
created() {
this.isTab = true;
},
updated() {
if (this.$parent) {
this.$parent.$forceUpdate();
}
},
};
</script>
<template>
<div
:class="{
active: localActive,
}"
class="tab-pane"
role="tabpanel"
>
<slot></slot>
</div>
</template>