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:
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) => {
|
||||
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]);
|
||||
}),
|
||||
),
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue