Files
pichunt/app/components/ClickableImage.vue
T
2025-09-15 15:44:50 +02:00

52 lines
1012 B
Vue

<script setup lang="ts">
const { t } = useI18n();
const props = withDefaults(
defineProps<{
title?: string;
src: string;
class?: string;
}>(),
{
title: '',
class: 'h-32'
}
);
const isOpen = ref(false);
</script>
<template>
<VaImage
:src="src"
class="cursor-pointer"
:class="props.class"
:title="title"
fit="cover"
lazy
@click.prevent="isOpen = true"
>
<template #loader>
<VaProgressCircle indeterminate />
</template>
</VaImage>
<VaModal v-model="isOpen" hide-default-actions close-button size="large">
<h1 class="mb-4 text-3xl">{{ title }}</h1>
<VaImage
:src="src"
:title="title || ''"
fit="contain"
lazy
class="h-screen"
>
<template #loader>
<VaProgressCircle indeterminate />
</template>
</VaImage>
<template #footer>
<VaButton @click="isOpen = false">{{ t('vuestic.close') }}</VaButton>
</template>
</VaModal>
</template>
<style scoped></style>