RegistrationStatus.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <!--
  2. Barre d'alerte quand au statut (l'avancement) de l'inscription en ligne de l'utilisateur
  3. -->
  4. <template>
  5. <UiSystemBar
  6. v-if="!pending && message"
  7. :text="$t(message)"
  8. icon="fas fa-id-card"
  9. class="theme-secondary"
  10. />
  11. </template>
  12. <script setup lang="ts">
  13. import {useEntityFetch} from "~/composables/data/useEntityFetch";
  14. import {useAccessProfileStore} from "~/stores/accessProfile";
  15. import RegistrationStatus from "~/models/OnlineRegistration/RegistrationStatus";
  16. import type {ComputedRef} from "@vue/reactivity";
  17. const { fetch } = useEntityFetch()
  18. const accessProfile = useAccessProfileStore()
  19. const { data: registrationStatus, pending } = fetch(RegistrationStatus, accessProfile.id ?? 0)
  20. const messagesByStatus = {
  21. 'NEGOTIABLE': "your_application_is_awaiting_processing",
  22. 'PENDING': "you_have_been_placed_on_the_waiting_list",
  23. 'ACCEPTED': "your_registration_file_has_been_validated",
  24. 'DENIED': "your_application_has_been_refused",
  25. }
  26. const message: ComputedRef<string> = computed(() => {
  27. if (!registrationStatus.value) {
  28. return ''
  29. }
  30. const status = (registrationStatus.value as RegistrationStatus).status
  31. return status ? messagesByStatus[status] : ''
  32. })
  33. </script>
  34. <style scoped lang="scss">
  35. </style>