RefreshNeeded.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <!--
  2. Une boite de dialogue signalant que la page doit être rechargée (par exemple
  3. parce que le accessProfile a été modifié dans un autre onglet).
  4. -->
  5. <template>
  6. <LazyLayoutDialog :show="showRefreshNeededDialog" theme="info">
  7. <template #dialogType>{{ $t('information') }}</template>
  8. <template #dialogTitle>{{ $t('refresh_needed') }}</template>
  9. <template #dialogText>
  10. <v-card-text class="text">
  11. <p>
  12. {{ $t('refresh_needed_message') }}
  13. </p>
  14. </v-card-text>
  15. </template>
  16. <template #dialogBtn>
  17. <v-btn class="submitBtn theme-info" @click="refreshPage">
  18. {{ $t('refresh_page') }}
  19. </v-btn>
  20. </template>
  21. </LazyLayoutDialog>
  22. </template>
  23. <script setup lang="ts">
  24. import { useAccessProfileStore } from '~/stores/accessProfile'
  25. const accessProfileUpdated = ref(false)
  26. const accessProfileStore = useAccessProfileStore()
  27. const pageStore = usePageStore()
  28. const showRefreshNeededDialog = computed(
  29. () => accessProfileUpdated.value && !pageStore.loading,
  30. )
  31. onMounted(() => {
  32. accessProfileStore.$subscribe(() => {
  33. accessProfileUpdated.value = true
  34. })
  35. })
  36. const refreshPage = () => {
  37. pageStore.loading = true
  38. window.location.reload()
  39. }
  40. </script>
  41. <style scoped lang="scss"></style>