From 96e76665d68cc638bb947be925ffb9b27772844c Mon Sep 17 00:00:00 2001
From: GyDi <segydi@foxmail.com>
Date: Sat, 24 Sep 2022 14:01:28 +0800
Subject: [PATCH] fix: refresh clash ui await patch

---
 src-tauri/src/core/handle.rs |  4 ++--
 src-tauri/src/core/mod.rs    | 12 +++++++-----
 2 files changed, 9 insertions(+), 7 deletions(-)

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(())
   }
-- 
GitLab