Allow explicit retry of failed native preview preparation

This commit is contained in:
karl committed 2026-10-13 14:27:58 +02:00
1 parent 370db7e791
commit f7f67afff9
4 files changed
+35 -3

No files matched your search

+15 -3
View File
@@ -264,9 +264,21 @@ const mediaLane = new LatestLane<PreviewRequest>(
(request) => previewRevision.accepts(request.revision),
(request, error) => {
if (!previewRevision.accepts(request.revision)) return;
element("media-preview-status").hidden = false;
element("media-preview-status").textContent =
`Preview unavailable: ${String(error)}. Use Open file.`;
const status = element("media-preview-status");
status.hidden = false;
status.textContent = `Preview unavailable: ${String(error)}. Use Open file.`;
const retry = document.createElement("button");
retry.type = "button";
retry.textContent = "Retry preview";
retry.addEventListener("click", () => {
const revision = previewRevision.retry(request.revision);
if (revision === undefined) return;
unloadMedia();
status.hidden = false;
status.textContent = "Preparing media preview…";
mediaLane.submit({ revision, result: request.result });
});
status.append(" ", retry);
},
);
let displayedRequestId: number | null = null;
+4
View File
@@ -98,6 +98,10 @@ export class PreviewRevision {
accepts(revision: number) {
return revision === this.revision && this.key !== "";
}
retry(revision: number): number | undefined {
if (!this.accepts(revision)) return undefined;
return ++this.revision;
}
clear() {
this.key = "";
this.revision++;