mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
fixed image preloading on PhotoSwipe modal
This commit is contained in:
parent
dd8b4e9dcf
commit
c888f13c60
1 changed files with 21 additions and 9 deletions
|
@ -28,26 +28,38 @@ const PhotoSwipe: VFC<PhotoSwipeProps> = observer(({ index, items }) => {
|
||||||
new Promise(async (resolve) => {
|
new Promise(async (resolve) => {
|
||||||
const images = await Promise.all(
|
const images = await Promise.all(
|
||||||
items.map(
|
items.map(
|
||||||
(image) =>
|
(file) =>
|
||||||
new Promise((resolveImage) => {
|
new Promise((resolve) => {
|
||||||
|
const src = getURL(
|
||||||
|
file,
|
||||||
|
isTablet ? imagePresets[900] : imagePresets[1600],
|
||||||
|
);
|
||||||
|
|
||||||
|
if (file.metadata?.width && file.metadata.height) {
|
||||||
|
resolve({
|
||||||
|
src,
|
||||||
|
w: file.metadata.width,
|
||||||
|
h: file.metadata.height,
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const img = new Image();
|
const img = new Image();
|
||||||
|
|
||||||
img.onload = () => {
|
img.onload = () => {
|
||||||
resolveImage({
|
resolve({
|
||||||
src: getURL(
|
src,
|
||||||
image,
|
|
||||||
isTablet ? imagePresets[900] : imagePresets[1600],
|
|
||||||
),
|
|
||||||
h: img.naturalHeight,
|
h: img.naturalHeight,
|
||||||
w: img.naturalWidth,
|
w: img.naturalWidth,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
img.onerror = () => {
|
img.onerror = () => {
|
||||||
resolveImage({});
|
resolve({});
|
||||||
};
|
};
|
||||||
|
|
||||||
img.src = getURL(image, imagePresets[1600]);
|
img.src = getURL(file, imagePresets[1600]);
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue