fixed thumbnail and file download not retried after fail

This commit is contained in:
abhinav-grd 2021-10-21 13:47:11 +05:30
parent 8970741158
commit 6097e76fad
3 changed files with 57 additions and 41 deletions

View file

@ -301,46 +301,56 @@ const PhotoFrame = ({
const getSlideData = async (instance: any, index: number, item: File) => {
if (!item.msrc) {
let url: string;
if (galleryContext.thumbs.has(item.id)) {
url = galleryContext.thumbs.get(item.id);
} else {
url = await DownloadManager.getPreview(item);
galleryContext.thumbs.set(item.id, url);
}
updateUrl(item.dataIndex)(url);
item.msrc = url;
if (!item.src) {
item.src = url;
}
item.w = window.innerWidth;
item.h = window.innerHeight;
try {
instance.invalidateCurrItems();
instance.updateSize(true);
let url: string;
if (galleryContext.thumbs.has(item.id)) {
url = galleryContext.thumbs.get(item.id);
} else {
url = await DownloadManager.getPreview(item);
galleryContext.thumbs.set(item.id, url);
}
updateUrl(item.dataIndex)(url);
item.msrc = url;
if (!item.src) {
item.src = url;
}
item.w = window.innerWidth;
item.h = window.innerHeight;
try {
instance.invalidateCurrItems();
instance.updateSize(true);
} catch (e) {
// ignore
}
} catch (e) {
// ignore
// no-op
}
}
if (!fetching[item.dataIndex]) {
fetching[item.dataIndex] = true;
let url: string;
if (galleryContext.files.has(item.id)) {
url = galleryContext.files.get(item.id);
} else {
url = await DownloadManager.getFile(item, true);
galleryContext.files.set(item.id, url);
}
await updateSrcUrl(item.dataIndex, url);
item.html = files[item.dataIndex].html;
item.src = files[item.dataIndex].src;
item.w = files[item.dataIndex].w;
item.h = files[item.dataIndex].h;
try {
instance.invalidateCurrItems();
instance.updateSize(true);
fetching[item.dataIndex] = true;
let url: string;
if (galleryContext.files.has(item.id)) {
url = galleryContext.files.get(item.id);
} else {
url = await DownloadManager.getFile(item, true);
galleryContext.files.set(item.id, url);
}
await updateSrcUrl(item.dataIndex, url);
item.html = files[item.dataIndex].html;
item.src = files[item.dataIndex].src;
item.w = files[item.dataIndex].w;
item.h = files[item.dataIndex].h;
try {
instance.invalidateCurrItems();
instance.updateSize(true);
} catch (e) {
// ignore
}
} catch (e) {
// ignore
// no-op
} finally {
fetching[item.dataIndex] = false;
}
}
};

View file

@ -128,15 +128,19 @@ export default function PreviewCard(props: IProps) {
useLayoutEffect(() => {
if (file && !file.msrc) {
const main = async () => {
const url = await DownloadManager.getPreview(file);
if (isMounted.current) {
setImgSrc(url);
thumbs.set(file.id, url);
file.msrc = url;
if (!file.src) {
file.src = url;
try {
const url = await DownloadManager.getPreview(file);
if (isMounted.current) {
setImgSrc(url);
thumbs.set(file.id, url);
file.msrc = url;
if (!file.src) {
file.src = url;
}
updateUrl(url);
}
updateUrl(url);
} catch (e) {
// no-op
}
};

View file

@ -35,6 +35,7 @@ class DownloadManager {
} catch (e) {
this.thumbnailObjectUrlPromise.delete(file.id);
logError(e, 'get preview Failed');
throw e;
}
}
@ -84,6 +85,7 @@ class DownloadManager {
} catch (e) {
this.fileObjectUrlPromise.delete(fileUID);
logError(e, 'Failed to get File');
throw e;
}
};