diff --git a/src/components/ImageDialog.vue b/src/components/ImageDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..2c6541fd3b3728f0156398cfa9da7f3fc8fff386 --- /dev/null +++ b/src/components/ImageDialog.vue @@ -0,0 +1,23 @@ +<template> + <q-dialog> + <div class="column justify-center items-center content-center" > + <q-btn icon="close" size="lg" class="absolute q-mt-md bg-secondary" style="top: 0px; z-index: 20000" text-color="primary" unelevated round v-close-popup /> + <div class="absolute" style="margin: 10%; height: auto"> + <img class="full-height full-width" style="border-radius: 10px" :src="src" /> + </div> + </div> + </q-dialog> +</template> + +<script setup lang="ts"> +defineProps({ + src: { + type: String, + required: true + } +}) +</script> + +<style scoped> + +</style> diff --git a/src/components/ImageView.vue b/src/components/ImageView.vue index 1335effcb8eae81668c47e71f295644963dca7e1..1f9b88e2356c0cea6d40b791b5ed52329041501a 100644 --- a/src/components/ImageView.vue +++ b/src/components/ImageView.vue @@ -19,9 +19,11 @@ > <swiper-slide v-for="{src,nb} in imageProjet" zoom :key="nb"> <img + class="cursor-pointer" :src="src" loading="lazy" style="border-radius: 10px" + @click="showImg = true;imgSelected = src" /> <div class="swiper-lazy-preloader swiper-lazy-preloader-white" @@ -29,6 +31,7 @@ > </swiper> </div> + <image-dialog v-model="showImg" :src="imgSelected" /> </template> <script setup lang="ts"> @@ -44,6 +47,10 @@ import 'swiper/css/navigation'; import TitleComposant from 'components/TitleComposant.vue'; import type { PropType } from 'vue'; import images from './images'; +import ImageDialog from 'components/ImageDialog.vue' + +const imgSelected = ref('') +const showImg = ref(false) const props = defineProps({ id: {