feat: download retry and error surfacing (#95)

This commit is contained in:
/home/neo
2026-06-28 14:38:33 +03:00
committed by GitHub
parent 85855ac4af
commit 98f92c3173
6 changed files with 98 additions and 54 deletions
+8
View File
@@ -364,9 +364,17 @@ export function useGameManager({
const unlistenRunner = TauriService.onRunnerDownloadProgress((p) =>
setRunnerDownloadProgress(p),
);
const unlistenError = TauriService.onBackendError((msg) => {
setError(msg);
});
const unlistenRetry = TauriService.onDownloadRetry((attempt) => {
setError(`Download failed, retrying (${attempt}/3)...`);
});
return () => {
unlistenDownload.then((u) => u());
unlistenRunner.then((u) => u());
unlistenError.then((u) => u());
unlistenRetry.then((u) => u());
};
}, [customEditions, checkInstalls]);
+12
View File
@@ -206,6 +206,18 @@ export class TauriService {
);
}
static onBackendError(callback: (message: string) => void) {
return listen<string>("backend-error", (event) =>
callback(event.payload),
);
}
static onDownloadRetry(callback: (attempt: number) => void) {
return listen<number>("download-retry", (event) =>
callback(event.payload),
);
}
static async openUrl(url: string): Promise<void> {
return invoke("plugin:opener|open_url", { url });
}