fixed thumbnail and file download not retried after fail
This commit is contained in:
parent
8970741158
commit
6097e76fad
|
@ -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;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue