mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-13 09:19:56 -05:00
Fix: Windows Auto-Installer (WIP)
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
import { open as openUrl } from "@tauri-apps/plugin-shell";
|
||||
|
||||
interface ReleaseInfo { tag_name: string; name: string; body: string; published_at: string; html_url: string; }
|
||||
type UpdatePhase = "idle" | "downloading" | "ready" | "error";
|
||||
type UpdatePhase = "idle" | "downloading" | "launching" | "ready" | "error";
|
||||
const IS_WINDOWS = navigator.userAgent.includes("Windows");
|
||||
|
||||
let appVersion = $state("…");
|
||||
@@ -33,6 +33,13 @@
|
||||
return () => unlisten?.();
|
||||
});
|
||||
|
||||
$effect(() => {
|
||||
let unlisten: (() => void) | undefined;
|
||||
listen("update-launching", () => { updatePhase = "launching"; })
|
||||
.then(fn => { unlisten = fn; });
|
||||
return () => unlisten?.();
|
||||
});
|
||||
|
||||
async function loadReleases() {
|
||||
releasesLoading = true; releasesError = null;
|
||||
try {
|
||||
@@ -81,7 +88,7 @@
|
||||
try {
|
||||
if (IS_WINDOWS) {
|
||||
try { await invoke("kill_server"); } catch {}
|
||||
await invoke("download_and_install_update");
|
||||
await invoke("download_and_install_update", { tag: release.tag_name });
|
||||
updatePhase = "ready";
|
||||
} else {
|
||||
await openUrl(release.html_url);
|
||||
@@ -134,6 +141,11 @@
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{#if updatePhase === "launching"}
|
||||
<div class="s-update-ready">
|
||||
<span class="s-update-ready-label">Launching installer for {targetTag}…</span>
|
||||
</div>
|
||||
{/if}
|
||||
{#if updatePhase === "ready"}
|
||||
<div class="s-update-ready">
|
||||
<span class="s-update-ready-label">{targetTag} downloaded — restart to finish installing.</span>
|
||||
|
||||
Reference in New Issue
Block a user