diff --git a/src/components/Gallery/GalleryMainImage.vue b/src/components/Gallery/GalleryMainImage.vue index fb91b68..385a558 100644 --- a/src/components/Gallery/GalleryMainImage.vue +++ b/src/components/Gallery/GalleryMainImage.vue @@ -3,7 +3,12 @@ + props.image, (newVal) => { - if (newVal.id) { + if (newVal.original) { + errorMessage.value = null isLoading.value = true } } ) +function handleError(e) { + e.preventDefault() + + isLoading.value = false + errorMessage.value = 'Image was not found or format is not supported' +} + +function handleLoad() { + isLoading.value = false +} + onMounted(() => { - imageElement.value.addEventListener('load', () => (isLoading.value = false)) + imageElement.value.addEventListener('load', handleLoad) + imageElement.value.addEventListener('error', handleError) }) diff --git a/src/components/ImageViewer/ImageViewer.global.vue b/src/components/ImageViewer/ImageViewer.global.vue index 36a6528..b0f8eab 100644 --- a/src/components/ImageViewer/ImageViewer.global.vue +++ b/src/components/ImageViewer/ImageViewer.global.vue @@ -10,7 +10,13 @@ class="absolute rounded-t-lg w-auto max-h-full h-auto top-12 bottom-44 left-0 right-0 flex justify-center align-middle" > +
{ const imageElement = ref(null) const isLoading = ref(false) +const errorMessage = ref(null) const image = computed(() => props.images[props.index]) document.addEventListener('keyup', handleKeyboard) +function handleError() { + isLoading.value = false + errorMessage.value = 'Image was not found or format is not supported' +} + +function handleLoad() { + isLoading.value = false +} + onMounted(() => { - imageElement.value.addEventListener('load', () => (isLoading.value = false)) + imageElement.value.addEventListener('load', handleLoad) + imageElement.value.addEventListener('error', handleError) document.body.classList.add('overflow-hidden') }) @@ -141,6 +158,9 @@ onUnmounted(() => { watch( () => props.index, - () => (isLoading.value = true) + () => { + errorMessage.value = null + isLoading.value = true + } )