From 5bf83df9af67fc64d739390464b8bccf1c676710 Mon Sep 17 00:00:00 2001 From: quexeky <116044207+quexeky@users.noreply.github.com> Date: Sun, 19 Jan 2025 19:14:52 +1100 Subject: [PATCH] feat(settings): Allow settings to update UI using fetch_settings command --- desktop/pages/settings/downloads.vue | 4 ++-- desktop/src-tauri/src/database/commands.rs | 5 ++++- desktop/src-tauri/src/lib.rs | 4 ++-- desktop/types.ts | 5 +++++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/desktop/pages/settings/downloads.vue b/desktop/pages/settings/downloads.vue index e3a0fab1..a08810c4 100644 --- a/desktop/pages/settings/downloads.vue +++ b/desktop/pages/settings/downloads.vue @@ -210,6 +210,7 @@ import { } from "@headlessui/vue"; import { FolderIcon, TrashIcon, XCircleIcon } from "@heroicons/vue/16/solid"; import { invoke } from "@tauri-apps/api/core"; +import { type Settings } from "~/types"; const open = ref(false); const currentDirectory = ref(undefined); @@ -218,8 +219,7 @@ const createDirectoryLoading = ref(false); const dirs = ref>([]); -const downloadThreads = ref(4); -const downloadThreadsChanged = computed(() => downloadThreads.value !== 4); +const downloadThreads = ref(((await invoke("fetch_settings")) as Settings).maxDownloadThreads ?? 0); async function updateDirs() { const newDirs = await invoke>("fetch_download_dir_stats"); diff --git a/desktop/src-tauri/src/database/commands.rs b/desktop/src-tauri/src/database/commands.rs index 9bc698e2..a740cf40 100644 --- a/desktop/src-tauri/src/database/commands.rs +++ b/desktop/src-tauri/src/database/commands.rs @@ -68,7 +68,10 @@ pub fn update_settings(new_settings: Value) { db_lock.settings = new_settings; println!("New Settings: {:?}", db_lock.settings); } - +#[tauri::command] +pub fn fetch_settings() -> Settings { + DB.borrow_data().unwrap().settings.clone() +} #[tauri::command] pub fn fetch_system_data() -> SystemData { let db_handle = DB.borrow_data().unwrap(); diff --git a/desktop/src-tauri/src/lib.rs b/desktop/src-tauri/src/lib.rs index 4bdc8be3..02df0f71 100644 --- a/desktop/src-tauri/src/lib.rs +++ b/desktop/src-tauri/src/lib.rs @@ -16,8 +16,7 @@ use autostart::{get_autostart_enabled, toggle_autostart}; use cleanup::{cleanup_and_exit, quit}; use commands::fetch_state; use database::commands::{ - add_download_dir, delete_download_dir, fetch_download_dir_stats, fetch_system_data, - update_settings, + add_download_dir, delete_download_dir, fetch_download_dir_stats, fetch_system_data, fetch_settings, update_settings }; use database::db::{DatabaseInterface, GameDownloadStatus, DATA_ROOT_DIR}; use download_manager::commands::{ @@ -221,6 +220,7 @@ pub fn run() { fetch_system_data, // User utils update_settings, + fetch_settings, // Auth auth_initiate, retry_connect, diff --git a/desktop/types.ts b/desktop/types.ts index 720ec283..60a5b23f 100644 --- a/desktop/types.ts +++ b/desktop/types.ts @@ -71,4 +71,9 @@ export type DownloadableMetadata = { id: string, version: string, downloadType: DownloadableType +} + +export type Settings = { + autostart: boolean, + maxDownloadThreads: number, } \ No newline at end of file