From 13d9ba78d111946a68a14f32482a3550cc2c73be Mon Sep 17 00:00:00 2001 From: DecDuck Date: Mon, 20 Jan 2025 11:42:09 +1100 Subject: [PATCH] fix: assorted fixes --- desktop/app.vue | 12 ++- desktop/composables/downloads.ts | 10 ++- desktop/composables/state-navigation.ts | 4 +- desktop/pages/index.vue | 3 + desktop/pages/library/[id]/index.vue | 2 +- desktop/pages/queue.vue | 88 +++++++++++++------ desktop/plugins/global-error-handler.ts | 2 +- desktop/src-tauri/src/database/db.rs | 15 +++- .../download_manager_builder.rs | 2 + .../src/download_manager/progress_object.rs | 25 ++++-- .../src/games/downloads/download_agent.rs | 36 ++++---- .../src/games/downloads/download_logic.rs | 1 - desktop/src-tauri/src/games/library.rs | 36 ++++---- desktop/src-tauri/src/lib.rs | 18 ++-- desktop/src-tauri/src/remote/auth.rs | 13 +-- desktop/src-tauri/src/remote/requests.rs | 8 +- 16 files changed, 166 insertions(+), 109 deletions(-) diff --git a/desktop/app.vue b/desktop/app.vue index 5616701f..b9011c6e 100644 --- a/desktop/app.vue +++ b/desktop/app.vue @@ -20,10 +20,18 @@ import { const router = useRouter(); const state = useAppState(); -state.value = JSON.parse(await invoke("fetch_state")); +try { + state.value = JSON.parse(await invoke("fetch_state")); +} catch (e) { + console.error("failed to parse state", e); +} router.beforeEach(async () => { - state.value = JSON.parse(await invoke("fetch_state")); + try { + state.value = JSON.parse(await invoke("fetch_state")); + } catch (e) { + console.error("failed to parse state", e); + } }); setupHooks(); diff --git a/desktop/composables/downloads.ts b/desktop/composables/downloads.ts index 55de7fb7..d75c46f6 100644 --- a/desktop/composables/downloads.ts +++ b/desktop/composables/downloads.ts @@ -2,7 +2,13 @@ import { listen } from "@tauri-apps/api/event"; import type { DownloadableMetadata } from "~/types"; export type QueueState = { - queue: Array<{ meta: DownloadableMetadata; status: string; progress: number | null }>; + queue: Array<{ + meta: DownloadableMetadata; + status: string; + progress: number | null; + current: number; + max: number; + }>; status: string; }; @@ -25,4 +31,4 @@ listen("update_queue", (event) => { listen("update_stats", (event) => { const stats = useStatsState(); stats.value = event.payload as StatsState; -}); \ No newline at end of file +}); diff --git a/desktop/composables/state-navigation.ts b/desktop/composables/state-navigation.ts index f7a9b4b7..46d9e2b0 100644 --- a/desktop/composables/state-navigation.ts +++ b/desktop/composables/state-navigation.ts @@ -48,9 +48,7 @@ export function initialNavigation(state: Ref) { switch (state.value.status) { case AppStatus.NotConfigured: - router.push({ path: "/setup" }).then(() => { - console.log("Pushed Setup"); - }); + router.push({ path: "/setup" }); break; case AppStatus.SignedOut: router.push("/auth"); diff --git a/desktop/pages/index.vue b/desktop/pages/index.vue index 72433aeb..52bc1df6 100644 --- a/desktop/pages/index.vue +++ b/desktop/pages/index.vue @@ -1,4 +1,7 @@