fix: update button enabling its package

This commit is contained in:
2025-05-01 16:32:10 +00:00
parent 2e17e0ae75
commit 9b86af282e
11 changed files with 81 additions and 33 deletions

View File

@ -102,16 +102,23 @@ pub async fn run(_args: Vec<String>) {
});
app.listen("download-end", closure!(clone apph, |ev| {
let raw = ev.payload();
log::debug!("download-end triggered: {}", raw);
let key = PkgKey(raw[1..raw.len()-1].to_owned());
let apph = apph.clone();
tauri::async_runtime::spawn(async move {
let mutex = apph.state::<Mutex<AppData>>();
let mut appd = mutex.lock().await;
let res = appd.pkgs.install_package(&key, true, false).await;
log::debug!("download-end install {:?}", res);
});
let payload = serde_json::from_str::<download_handler::DownloadEndPayload>(ev.payload());
match payload {
Ok(payload) => {
log::debug!("download-end triggered: {:?}", payload);
let key = payload.key;
let apph = apph.clone();
tauri::async_runtime::spawn(async move {
let mutex = apph.state::<Mutex<AppData>>();
let mut appd = mutex.lock().await;
let res = appd.pkgs.install_package(&key, true, false, payload.enable).await;
log::debug!("download-end install {:?}", res);
});
},
Err(err) => {
log::error!("invalid download payload: {err}");
}
}
}));
app.listen("launch-end", closure!(clone apph, |_| {
@ -134,11 +141,13 @@ pub async fn run(_args: Vec<String>) {
tauri::async_runtime::spawn(async move {
let mutex = apph.state::<Mutex<AppData>>();
let mut appd = mutex.lock().await;
let res = appd.toggle_package(payload.pkg.clone(), ToggleAction::EnableSelf);
log::debug!(
"install-end-prelude toggle {:?}",
res
);
if payload.enable == true {
let res = appd.toggle_package(payload.pkg.clone(), ToggleAction::EnableSelf);
log::debug!(
"install-end-prelude toggle {:?}",
res
);
}
use tauri::Emitter;
let res = apph.emit("install-end", payload);
log::debug!("install-end {:?}", res);
@ -273,7 +282,7 @@ fn deep_link(app: AppHandle, args: Vec<String>) {
let mut appd = mutex.lock().await;
if appd.pkgs.is_offline() {
log::warn!("Deep link installation failed: offline");
} else if let Err(e) = appd.pkgs.install_package(&key, true, true).await {
} else if let Err(e) = appd.pkgs.install_package(&key, true, true, true).await {
log::warn!("Deep link installation failed: {}", e.to_string());
}
});