1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-24 20:36: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) => {
const images = await Promise.all(
items.map(
(image) =>
new Promise((resolveImage) => {
(file) =>
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();
img.onload = () => {
resolveImage({
src: getURL(
image,
isTablet ? imagePresets[900] : imagePresets[1600],
),
resolve({
src,
h: img.naturalHeight,
w: img.naturalWidth,
});
};
img.onerror = () => {
resolveImage({});
resolve({});
};
img.src = getURL(image, imagePresets[1600]);
img.src = getURL(file, imagePresets[1600]);
}),
),
);