mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
797 B
33 lines
797 B
<script setup lang="ts"> |
|
interface Props { |
|
srcs: string[] |
|
alt?: string |
|
objectFit?: string |
|
} |
|
|
|
const props = defineProps<Props>() |
|
|
|
const index = ref(0) |
|
|
|
const onError = () => index.value++ |
|
</script> |
|
|
|
<template> |
|
<!-- Replacing with Image component as nuxt-image is not triggering @error when the image doesn't load. Will fix later |
|
TODO: @DarkPhoenix2704 Fix this later |
|
--> |
|
<img |
|
v-if="index < props.srcs?.length" |
|
:src="props.srcs[index]" |
|
quality="75" |
|
:placeholder="props.alt" |
|
:class="{ |
|
'!object-contain': props.objectFit === 'contain', |
|
}" |
|
loading="lazy" |
|
:alt="props?.alt || ''" |
|
class="m-auto h-full max-h-full w-auto nc-attachment-image object-cover" |
|
@error="onError" |
|
/> |
|
<component :is="iconMap.imagePlaceholder" v-else /> |
|
</template>
|
|
|