MobytStatus.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <!--
  2. Texte descriptif du statut Mobyt de la structure
  3. @see https://vuetifyjs.com/en/components/text-fields/
  4. -->
  5. <template>
  6. <span v-if="mobytStatus && !mobytStatusFetch.pending">
  7. {{ mobytStatus.money.toLocaleString($i18n.locale, { style: 'currency', currency: 'EUR' }) }}
  8. ({{ mobytStatus.amount }} SMS)
  9. </span>
  10. </template>
  11. <script lang="ts">
  12. import { defineComponent, ref, Ref, useContext, useFetch } from '@nuxtjs/composition-api'
  13. import { ApiResponse, MobytUserStatus } from '~/types/interfaces'
  14. import { QUERY_TYPE } from '~/types/enums'
  15. export default defineComponent({
  16. setup () {
  17. const { store, $dataProvider } = useContext()
  18. const id: number = store.state.profile.organization.id
  19. const mobytStatus: Ref<MobytUserStatus | null> = ref(null)
  20. // fetch the mobyt status
  21. const { fetchState } = useFetch(async () => {
  22. try {
  23. const response:ApiResponse = await $dataProvider.invoke({
  24. type: QUERY_TYPE.DEFAULT,
  25. url: '/api/mobyt/status/' + id
  26. })
  27. mobytStatus.value = response.data as MobytUserStatus
  28. } catch (Error) {
  29. // eslint-disable-next-line no-console
  30. console.error('Error: Mobyt status not found')
  31. }
  32. })
  33. return {
  34. mobytStatus,
  35. mobytStatusFetch: fetchState
  36. }
  37. }
  38. })
  39. </script>