default.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <div>
  3. <!-- Show the loading page -->
  4. <client-only placeholder-tag="client-only-placeholder" placeholder=" " />
  5. <v-app>
  6. <LayoutLoadingScreen />
  7. <LayoutHeader />
  8. <LayoutMainMenu>
  9. <template #prepend="{ isRail }">
  10. <LayoutUpgradePremiumButton
  11. v-if="showUpgradePremiumButton"
  12. :minimized="isRail"
  13. />
  14. </template>
  15. </LayoutMainMenu>
  16. <v-main class="main">
  17. <LayoutSubheader />
  18. <LayoutAlertBar class="mt-1" />
  19. <!-- Page will be rendered here-->
  20. <slot />
  21. </v-main>
  22. <LazyLayoutAlertContainer />
  23. </v-app>
  24. </div>
  25. </template>
  26. <script setup lang="ts">
  27. import { useLayoutStore } from '~/stores/layout'
  28. const layoutStore = useLayoutStore()
  29. layoutStore.name = 'default'
  30. const accessProfile = useAccessProfileStore()
  31. const organizationProfile = useOrganizationProfileStore()
  32. const showUpgradePremiumButton: ComputedRef<boolean> = computed(
  33. () =>
  34. ((organizationProfile.isArtistProduct ||
  35. organizationProfile.isTrialActive) &&
  36. (accessProfile.isCaMember || accessProfile.isAdmin)) ??
  37. false,
  38. )
  39. </script>