RegistrationStatus.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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(
  20. RegistrationStatus,
  21. accessProfile.currentAccessId ?? 0,
  22. )
  23. const messagesByStatus = {
  24. NEGOTIABLE: 'your_application_is_awaiting_processing',
  25. PENDING: 'you_have_been_placed_on_the_waiting_list',
  26. ACCEPTED: 'your_registration_file_has_been_validated',
  27. DENIED: 'your_application_has_been_refused',
  28. }
  29. const message: ComputedRef<string> = computed(() => {
  30. if (!registrationStatus.value) {
  31. return ''
  32. }
  33. const status = (registrationStatus.value as RegistrationStatus).status
  34. return status ? messagesByStatus[status] : ''
  35. })
  36. </script>
  37. <style scoped lang="scss"></style>