1
0
Fork 0
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:
Fedor Katurov 2022-12-14 09:43:01 +06:00
parent dd8b4e9dcf
commit c888f13c60

View file

@ -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]);
}), }),
), ),
); );