feat(cache): Added offline!() macro to manage online and offline function distinctions

See fetch_library command for example
This commit is contained in:
quexeky
2025-01-30 12:11:20 +11:00
parent bb23e88ead
commit f33ca95bdf
3 changed files with 6 additions and 3 deletions

View File

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

View File

@ -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 ), *)
}
};
}
}

View File

@ -38,6 +38,7 @@ export type Game = {
export enum AppStatus {
NotConfigured = "NotConfigured",
Offline = "Offline",
SignedOut = "SignedOut",
SignedIn = "SignedIn",
SignedInNeedsReauth = "SignedInNeedsReauth",