RegistrationStatus.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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="status == FETCHING_STATUS.SUCCESS && 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 type { ComputedRef } from 'vue'
  14. import { useEntityFetch } from '~/composables/data/useEntityFetch'
  15. import { useAccessProfileStore } from '~/stores/accessProfile'
  16. import RegistrationStatus from '~/models/OnlineRegistration/RegistrationStatus'
  17. import { FETCHING_STATUS } from '~/types/enum/data'
  18. const { fetch } = useEntityFetch()
  19. const accessProfile = useAccessProfileStore()
  20. const { data: registrationStatus, status } = fetch(
  21. RegistrationStatus,
  22. accessProfile.currentAccessId ?? 0,
  23. )
  24. const messagesByStatus = {
  25. NEGOTIABLE: 'your_application_is_awaiting_processing',
  26. PENDING: 'you_have_been_placed_on_the_waiting_list',
  27. ACCEPTED: 'your_registration_file_has_been_validated',
  28. DENIED: 'your_application_has_been_refused',
  29. }
  30. const message: ComputedRef<string> = computed(() => {
  31. if (!registrationStatus.value) {
  32. return ''
  33. }
  34. const status = (registrationStatus.value as RegistrationStatus).status
  35. return status ? messagesByStatus[status] : ''
  36. })
  37. </script>
  38. <style scoped lang="scss"></style>