+1
-1
src/components/EmbedMedia.svelte
+1
-1
src/components/EmbedMedia.svelte
+8
-14
src/components/PhotoSwipeGallery.svelte
+8
-14
src/components/PhotoSwipeGallery.svelte
···
3
3
src: string;
4
4
thumbnail?: {
5
5
src: string;
6
-
width: number;
7
-
height: number;
6
+
width?: number;
7
+
height?: number;
8
8
};
9
-
width: number;
10
-
height: number;
11
-
cropped?: boolean;
9
+
width?: number;
10
+
height?: number;
12
11
alt?: string;
13
12
}
14
13
export type GalleryData = Array<GalleryItem>;
···
23
22
24
23
export let images: GalleryData;
25
24
let element: HTMLDivElement;
25
+
let imageElements: { [key: number]: HTMLImageElement } = {};
26
26
27
27
const options = writable<Partial<PreparedPhotoSwipeOptions> | undefined>(undefined);
28
28
$: {
···
70
70
<!-- eslint-disable svelte/no-navigation-without-resolve -->
71
71
<a
72
72
href={img.src}
73
-
data-pswp-width={img.width}
74
-
data-pswp-height={img.height}
73
+
data-pswp-width={img.width ?? imageElements[i]?.width}
74
+
data-pswp-height={img.height ?? imageElements[i]?.height}
75
75
target="_blank"
76
76
class:hidden-in-grid={isHidden}
77
77
class:overlay-container={isOverlay}
78
78
>
79
-
<img
80
-
src={thumb.src}
81
-
title={img.alt ?? ''}
82
-
alt={img.alt ?? ''}
83
-
width={thumb.width}
84
-
height={thumb.height}
85
-
/>
79
+
<img bind:this={imageElements[i]} src={thumb.src} title={img.alt ?? ''} alt={img.alt ?? ''} />
86
80
87
81
{#if isOverlay}
88
82
<div class="more-overlay">