content/frontend/shared/components/docs_banner.vue (64 lines of code) (raw):

<script> import { GlAlert, GlSafeHtmlDirective as SafeHtml } from '@gitlab/ui'; import { getCookie, setCookie } from '../cookies'; export default { directives: { SafeHtml, }, components: { GlAlert, }, props: { text: { type: String, required: true, }, variant: { type: String, required: true, }, isSticky: { type: Boolean, required: false, default: false, }, dismissible: { type: Boolean, required: false, default: true, }, }, data() { return { showBanner: true, }; }, computed: { renderBanner() { return (this.showBanner || !this.dismissible) === true; }, }, created() { this.showBanner = getCookie('HideDocsBanner') !== '1'; }, methods: { dismissAlert() { this.showBanner = false; setCookie('HideDocsBanner', 1, 30); }, }, }; </script> <template> <gl-alert v-if="renderBanner" :sticky="isSticky" :variant="variant" :dismissible="dismissible" :show-icon="false" class="gl-docs gl-mt-6 gl-z-index-3" @dismiss="dismissAlert()" > <div v-safe-html="text" class="gl-line-height-24 gl-layout-w-limited gl-m-auto"></div> </gl-alert> </template>