ModalManager.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <script setup lang="ts">
  2. import { useStore } from "vuex";
  3. import { computed, ref } from "vue";
  4. import { useModalComponents } from "@/vuex_helpers";
  5. const store = useStore();
  6. const activeModals = computed(() => store.state.modalVisibility.activeModals);
  7. const modals = computed(() => store.state.modalVisibility.modals);
  8. const modalComponents = ref(
  9. useModalComponents("components/modals", {
  10. editUser: "EditUser.vue",
  11. login: "Login.vue",
  12. register: "Register.vue",
  13. whatIsNew: "WhatIsNew.vue",
  14. createStation: "CreateStation.vue",
  15. editNews: "EditNews.vue",
  16. manageStation: "ManageStation/index.vue",
  17. editPlaylist: "EditPlaylist/index.vue",
  18. createPlaylist: "CreatePlaylist.vue",
  19. report: "Report.vue",
  20. viewReport: "ViewReport.vue",
  21. bulkActions: "BulkActions.vue",
  22. viewApiRequest: "ViewApiRequest.vue",
  23. viewPunishment: "ViewPunishment.vue",
  24. removeAccount: "RemoveAccount.vue",
  25. importAlbum: "ImportAlbum.vue",
  26. confirm: "Confirm.vue",
  27. editSongs: "EditSongs.vue",
  28. editSong: "EditSong/index.vue",
  29. viewYoutubeVideo: "ViewYoutubeVideo.vue"
  30. })
  31. );
  32. </script>
  33. <template>
  34. <div>
  35. <div v-for="activeModalUuid in activeModals" :key="activeModalUuid">
  36. <component
  37. :is="modalComponents[modals[activeModalUuid]]"
  38. :modal-uuid="activeModalUuid"
  39. />
  40. </div>
  41. </div>
  42. </template>