MainOverlayDialog.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template lang="pug">
  2. q-dialog.main-overlay(
  3. v-model='siteStore.overlayIsShown'
  4. persistent
  5. full-width
  6. full-height
  7. no-shake
  8. transition-show='jump-up'
  9. transition-hide='jump-down'
  10. )
  11. component(:is='overlays[siteStore.overlay]')
  12. </template>
  13. <script setup>
  14. import { defineAsyncComponent } from 'vue'
  15. import { useSiteStore } from '../stores/site'
  16. import LoadingGeneric from './LoadingGeneric.vue'
  17. const overlays = {
  18. EditorMarkdownConfig: defineAsyncComponent({
  19. loader: () => import('./EditorMarkdownUserSettingsOverlay.vue'),
  20. loadingComponent: LoadingGeneric
  21. }),
  22. FileManager: defineAsyncComponent({
  23. loader: () => import('./FileManager.vue'),
  24. loadingComponent: LoadingGeneric
  25. }),
  26. NavEdit: defineAsyncComponent({
  27. loader: () => import('./NavEditOverlay.vue'),
  28. loadingComponent: LoadingGeneric
  29. }),
  30. PageSource: defineAsyncComponent({
  31. loader: () => import('./PageSourceOverlay.vue'),
  32. loadingComponent: LoadingGeneric
  33. }),
  34. TableEditor: defineAsyncComponent({
  35. loader: () => import('./TableEditorOverlay.vue'),
  36. loadingComponent: LoadingGeneric
  37. }),
  38. Welcome: defineAsyncComponent({
  39. loader: () => import('./WelcomeOverlay.vue'),
  40. loadingComponent: LoadingGeneric
  41. })
  42. }
  43. // STORES
  44. const siteStore = useSiteStore()
  45. </script>