MapComplete/src/UI/Image/ImagePreview.svelte

28 lines
668 B
Svelte
Raw Normal View History

<script lang="ts">
2023-12-19 22:08:00 +01:00
/**
* The image preview allows to drag and zoom in to the image
*/
import panzoom from "panzoom"
import type { ProvidedImage } from "../../Logic/ImageProviders/ImageProvider"
2023-12-19 22:08:00 +01:00
export let image: ProvidedImage
let panzoomInstance = undefined
let panzoomEl: HTMLElement
2023-12-19 22:08:00 +01:00
$: {
if (panzoomEl) {
panzoomInstance = panzoom(panzoomEl, {
bounds: true,
boundsPadding: 0.49,
minZoom: 1,
maxZoom: 25,
initialZoom: 1.2,
})
} else {
panzoomInstance?.dispose()
}
2023-12-19 22:08:00 +01:00
}
</script>
2023-12-19 22:08:00 +01:00
<img bind:this={panzoomEl} src={image.url_hd ?? image.url} class="panzoom-image h-fit w-fit" />