浏览代码

fix: refresh clash ui await patch

GyDi 2 年之前
父节点
当前提交
96e76665d6
共有 2 个文件被更改,包括 9 次插入7 次删除
  1. 2 2
      src-tauri/src/core/handle.rs
  2. 7 5
      src-tauri/src/core/mod.rs

+ 2 - 2
src-tauri/src/core/handle.rs

@@ -43,7 +43,7 @@ impl Handle {
   // update system tray state (clash config)
   // update system tray state (clash config)
   pub fn update_systray_clash(&self) -> Result<()> {
   pub fn update_systray_clash(&self) -> Result<()> {
     if self.app_handle.is_none() {
     if self.app_handle.is_none() {
-      bail!("unhandle error");
+      bail!("update_systray_clash unhandle error");
     }
     }
 
 
     let app_handle = self.app_handle.as_ref().unwrap();
     let app_handle = self.app_handle.as_ref().unwrap();
@@ -75,7 +75,7 @@ impl Handle {
   /// update the system tray state (verge config)
   /// update the system tray state (verge config)
   pub fn update_systray(&self) -> Result<()> {
   pub fn update_systray(&self) -> Result<()> {
     if self.app_handle.is_none() {
     if self.app_handle.is_none() {
-      bail!("unhandle error");
+      bail!("update_systray unhandle error");
     }
     }
 
 
     let app_handle = self.app_handle.as_ref().unwrap();
     let app_handle = self.app_handle.as_ref().unwrap();

+ 7 - 5
src-tauri/src/core/mod.rs

@@ -224,14 +224,16 @@ impl Core {
     let mut mapping = Mapping::new();
     let mut mapping = Mapping::new();
     mapping.insert(Value::from("mode"), Value::from(mode));
     mapping.insert(Value::from("mode"), Value::from(mode));
 
 
+    let handle = self.handle.clone();
+
     tauri::async_runtime::spawn(async move {
     tauri::async_runtime::spawn(async move {
       log_if_err!(Service::patch_config(info, mapping.to_owned()).await);
       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(())
     Ok(())
   }
   }