From 273c68561b6f4758863e2a8a5c822d7a7f04977a Mon Sep 17 00:00:00 2001 From: quexeky Date: Thu, 30 Jan 2025 12:11:20 +1100 Subject: [PATCH] feat(cache): Added offline!() macro to manage online and offline function distinctions See fetch_library command for example --- desktop/src-tauri/src/lib.rs | 3 ++- desktop/src-tauri/src/remote/cache.rs | 5 +++-- desktop/types.ts | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/desktop/src-tauri/src/lib.rs b/desktop/src-tauri/src/lib.rs index 1e374eba..e8bfdb76 100644 --- a/desktop/src-tauri/src/lib.rs +++ b/desktop/src-tauri/src/lib.rs @@ -60,9 +60,10 @@ use tauri::{AppHandle, Manager, RunEvent, WindowEvent}; use tauri_plugin_deep_link::DeepLinkExt; use tauri_plugin_dialog::DialogExt; -#[derive(Clone, Copy, Serialize)] +#[derive(Clone, Copy, Serialize, Eq, PartialEq)] pub enum AppStatus { NotConfigured, + Offline, ServerError, SignedOut, SignedIn, diff --git a/desktop/src-tauri/src/remote/cache.rs b/desktop/src-tauri/src/remote/cache.rs index faf37ad2..38a24b07 100644 --- a/desktop/src-tauri/src/remote/cache.rs +++ b/desktop/src-tauri/src/remote/cache.rs @@ -2,10 +2,11 @@ #[macro_export] macro_rules! offline { ($var:expr, $func1:expr, $func2:expr, $( $arg:expr ),* ) => { - if borrow_db_checked().settings.offline || state.{ + + if crate::borrow_db_checked().settings.force_offline || $var.lock().unwrap().status == crate::AppStatus::Offline { $func1( $( $arg ), *) } else { $func2( $( $arg ), *) } - }; + } } \ No newline at end of file diff --git a/desktop/types.ts b/desktop/types.ts index 60a5b23f..d5a6ad96 100644 --- a/desktop/types.ts +++ b/desktop/types.ts @@ -38,6 +38,7 @@ export type Game = { export enum AppStatus { NotConfigured = "NotConfigured", + Offline = "Offline", SignedOut = "SignedOut", SignedIn = "SignedIn", SignedInNeedsReauth = "SignedInNeedsReauth",