diff options
| author | Brendan Allan <[email protected]> | 2026-02-12 17:44:06 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-12 09:44:06 +0000 |
| commit | 1413d77b1ff36ed030c179b3bc59dc6a9b9679b3 (patch) | |
| tree | 9d9d59cd34d1bc4a1c091200cdbad841123ec327 /packages/desktop/src/loading.tsx | |
| parent | 624dd94b5dd8dca03aa3b246312f8b54fd3331f1 (diff) | |
| download | opencode-1413d77b1ff36ed030c179b3bc59dc6a9b9679b3.tar.gz opencode-1413d77b1ff36ed030c179b3bc59dc6a9b9679b3.zip | |
desktop: sqlite migration progress bar (#13294)
Diffstat (limited to 'packages/desktop/src/loading.tsx')
| -rw-r--r-- | packages/desktop/src/loading.tsx | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/desktop/src/loading.tsx b/packages/desktop/src/loading.tsx index 752cde893..a1d537a00 100644 --- a/packages/desktop/src/loading.tsx +++ b/packages/desktop/src/loading.tsx @@ -4,7 +4,7 @@ import "@opencode-ai/app/index.css" import { Font } from "@opencode-ai/ui/font" import { Splash } from "@opencode-ai/ui/logo" import "./styles.css" -import { createSignal, Match, onMount } from "solid-js" +import { createSignal, Match, onCleanup, onMount } from "solid-js" import { commands, events, InitStep } from "./bindings" import { Channel } from "@tauri-apps/api/core" import { Switch } from "solid-js" @@ -57,15 +57,29 @@ render(() => { "This could take a couple of minutes", ] const [textIndex, setTextIndex] = createSignal(0) + const [progress, setProgress] = createSignal(0) onMount(async () => { + const listener = events.sqliteMigrationProgress.listen((e) => { + if (e.payload.type === "InProgress") setProgress(e.payload.value) + }) + onCleanup(() => listener.then((c) => c())) + await new Promise((res) => setTimeout(res, 3000)) setTextIndex(1) await new Promise((res) => setTimeout(res, 6000)) setTextIndex(2) }) - return <>{textItems[textIndex()]}</> + return ( + <div class="flex flex-col items-center gap-1"> + <span>{textItems[textIndex()]}</span> + <span>Progress: {progress()}%</span> + <div class="h-2 w-48 rounded-full border border-white relative"> + <div class="bg-[#fff] h-full absolute left-0 inset-y-0" style={{ width: `${progress()}%` }} /> + </div> + </div> + ) }} </Match> </Switch> |
