2023-07-14 06:36:17 -07:00
|
|
|
<script setup lang="ts">
|
2023-08-17 05:00:17 -07:00
|
|
|
import NonProductionLicenseBanner from '@/components/banners/NonProductionLicenseBanner.vue';
|
2023-07-14 06:36:17 -07:00
|
|
|
import TrialOverBanner from '@/components/banners/TrialOverBanner.vue';
|
|
|
|
import TrialBanner from '@/components/banners/TrialBanner.vue';
|
|
|
|
import V1Banner from '@/components/banners/V1Banner.vue';
|
|
|
|
import { useUIStore } from '@/stores/ui.store';
|
|
|
|
import { onMounted, watch } from 'vue';
|
|
|
|
import { getBannerRowHeight } from '@/utils';
|
2023-08-17 05:00:17 -07:00
|
|
|
import type { BannerName } from 'n8n-workflow';
|
2023-07-14 06:36:17 -07:00
|
|
|
|
|
|
|
const uiStore = useUIStore();
|
|
|
|
|
2023-08-17 05:00:17 -07:00
|
|
|
function shouldShowBanner(bannerName: BannerName) {
|
2023-07-14 06:36:17 -07:00
|
|
|
return uiStore.banners[bannerName].dismissed === false;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function updateCurrentBannerHeight() {
|
|
|
|
const bannerHeight = await getBannerRowHeight();
|
|
|
|
uiStore.updateBannersHeight(bannerHeight);
|
|
|
|
}
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
await updateCurrentBannerHeight();
|
|
|
|
});
|
|
|
|
|
|
|
|
watch(uiStore.banners, async () => {
|
|
|
|
await updateCurrentBannerHeight();
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<div data-test-id="banner-stack">
|
|
|
|
<trial-over-banner v-if="shouldShowBanner('TRIAL_OVER')" />
|
|
|
|
<trial-banner v-if="shouldShowBanner('TRIAL')" />
|
|
|
|
<v1-banner v-if="shouldShowBanner('V1')" />
|
2023-08-17 05:00:17 -07:00
|
|
|
<non-production-license-banner v-if="shouldShowBanner('NON_PRODUCTION_LICENSE')" />
|
2023-07-14 06:36:17 -07:00
|
|
|
</div>
|
|
|
|
</template>
|