diff --git a/src-tauri/src/core/handle.rs b/src-tauri/src/core/handle.rs index 471790d..3dcd165 100644 --- a/src-tauri/src/core/handle.rs +++ b/src-tauri/src/core/handle.rs @@ -43,7 +43,7 @@ impl Handle { // update system tray state (clash config) pub fn update_systray_clash(&self) -> Result<()> { if self.app_handle.is_none() { - bail!("unhandle error"); + bail!("update_systray_clash unhandle error"); } let app_handle = self.app_handle.as_ref().unwrap(); @@ -75,7 +75,7 @@ impl Handle { /// update the system tray state (verge config) pub fn update_systray(&self) -> Result<()> { if self.app_handle.is_none() { - bail!("unhandle error"); + bail!("update_systray unhandle error"); } let app_handle = self.app_handle.as_ref().unwrap(); diff --git a/src-tauri/src/core/mod.rs b/src-tauri/src/core/mod.rs index 21293dc..096aa45 100644 --- a/src-tauri/src/core/mod.rs +++ b/src-tauri/src/core/mod.rs @@ -224,14 +224,16 @@ impl Core { let mut mapping = Mapping::new(); mapping.insert(Value::from("mode"), Value::from(mode)); + let handle = self.handle.clone(); + tauri::async_runtime::spawn(async move { log_if_err!(Service::patch_config(info, mapping.to_owned()).await); - }); - // update tray - let handle = self.handle.lock(); - handle.refresh_clash(); - handle.update_systray_clash()?; + // update tray + let handle = handle.lock(); + handle.refresh_clash(); + log_if_err!(handle.update_systray_clash()); + }); Ok(()) }