<template>
  <div class="kole-imgprev-mask" v-if="visible" @click.self="emit('close')">
    <button class="kole-imgprev-close" @click="emit('close')">✕</button>
    <button class="kole-imgprev-arrow prev" @click="go(-1)">‹</button>
    <img class="kole-imgprev-img" :src="images[index]" :alt="index" />
    <button class="kole-imgprev-arrow next" @click="go(1)">›</button>
    <div class="kole-imgprev-count">{{ index + 1 }} / {{ images.length }}</div>
    <div class="kole-imgprev-thumbs">
      <img v-for="(u, i) in images" :key="i" class="kole-imgprev-thumb" :class="{ 'is-active': i === index }"
           :src="u" @click="emit('change', i)" />
    </div>
  </div>
</template>

<script setup>
const props = defineProps({
  images: { type: Array, default: () => [] },
  visible: { type: Boolean, default: false },
  index: { type: Number, default: 0 }
});
const emit = defineEmits(['close', 'change']);
function go(dir) {
  const len = props.images.length || 1;
  emit('change', (props.index + dir + len) % len);
}
</script>

<style src="./ImagePreview.css"></style>
