feat(settings): Allow settings to update UI using fetch_settings command

This commit is contained in:
quexeky
2025-01-19 19:14:52 +11:00
parent 23077040ce
commit 5bb04dafdd
4 changed files with 13 additions and 5 deletions

View File

@ -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<string | undefined>(undefined);
@ -218,8 +219,7 @@ const createDirectoryLoading = ref(false);
const dirs = ref<Array<string>>([]);
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<Array<string>>("fetch_download_dir_stats");

View File

@ -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();

View File

@ -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,

View File

@ -71,4 +71,9 @@ export type DownloadableMetadata = {
id: string,
version: string,
downloadType: DownloadableType
}
export type Settings = {
autostart: boolean,
maxDownloadThreads: number,
}