AuthValidationErrors.vue 671B

12345678910111213141516171819202122232425262728
  1. <script setup>
  2. import { computed, ref, watch } from 'vue'
  3. import { usePage } from '@inertiajs/inertia-vue3'
  4. const errors = computed(() => usePage().props.value.errors)
  5. const hasErrors = computed(() => Object.keys(errors.value).length > 0)
  6. const messageDisplay = ref({})
  7. const onClose = () => (messageDisplay.value = { display: 'none' })
  8. watch(
  9. errors,
  10. () => {
  11. messageDisplay.value = { display: '' }
  12. },
  13. { deep: true }
  14. )
  15. </script>
  16. <template>
  17. <Message v-if="hasErrors" severity="error" :style="messageDisplay" @close="onClose()">
  18. <ul class="m-0">
  19. <li v-for="(error, key) in errors" :key="key">{{ error }}</li>
  20. </ul>
  21. </Message>
  22. </template>