feat: initial commit

This commit is contained in:
eric
2026-03-12 22:16:34 +01:00
parent 8555b02752
commit f13f4a9a69
155 changed files with 11988 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
import { Events } from "@wailsio/runtime";
import { UpdateService } from "../bindings/github.com/Eriyc/rules_wails/examples/wails3_init_updater";
type Snapshot = {
state: string;
currentVersion: string;
channel: string;
candidate?: {
version: string;
notesMarkdown?: string;
};
lastError?: {
message: string;
};
};
const currentVersionElement = document.getElementById("current-version")! as HTMLDivElement;
const channelElement = document.getElementById("channel")! as HTMLDivElement;
const stateElement = document.getElementById("state")! as HTMLDivElement;
const candidateVersionElement = document.getElementById("candidate-version")! as HTMLDivElement;
const lastErrorElement = document.getElementById("last-error")! as HTMLDivElement;
const releaseNotesElement = document.getElementById("release-notes")! as HTMLDivElement;
const checkButton = document.getElementById("check")! as HTMLButtonElement;
const downloadButton = document.getElementById("download")! as HTMLButtonElement;
const applyButton = document.getElementById("apply")! as HTMLButtonElement;
function render(snapshot: Snapshot) {
currentVersionElement.innerText = snapshot.currentVersion ?? "unknown";
channelElement.innerText = snapshot.channel ?? "unknown";
stateElement.innerText = snapshot.state ?? "idle";
candidateVersionElement.innerText = snapshot.candidate?.version ?? "none";
lastErrorElement.innerText = snapshot.lastError?.message ?? "none";
releaseNotesElement.innerText = snapshot.candidate?.notesMarkdown ?? "No release selected.";
}
async function refreshSnapshot() {
render((await UpdateService.Snapshot()) as Snapshot);
}
checkButton.addEventListener("click", async () => {
render((await UpdateService.Check()) as Snapshot);
});
downloadButton.addEventListener("click", async () => {
render((await UpdateService.Download()) as Snapshot);
});
applyButton.addEventListener("click", async () => {
try {
await UpdateService.ApplyAndRestart();
} catch (error) {
lastErrorElement.innerText = String(error);
}
});
Events.On("updates:state", (event) => {
render(event.data as Snapshot);
});
refreshSnapshot().catch((error) => {
lastErrorElement.innerText = String(error);
});

View File

@@ -0,0 +1 @@
/// <reference types="vite/client" />