refactor 6

This commit is contained in:
Julian Freeman
2026-04-18 16:15:52 -04:00
parent 73976d1367
commit 708df41063
9 changed files with 180 additions and 102 deletions

View File

@@ -11,10 +11,11 @@ use tokio::sync::mpsc;
use winreg::enums::*;
use winreg::RegKey;
use crate::domain::models::{InstallProgress, InstallTask, TaskEventPayload};
use crate::domain::models::{InstallTask, TaskEventPayload};
use crate::providers::winget_client;
use crate::services::essentials_service;
use crate::services::log_service::emit_log;
use crate::services::task_event_service;
use crate::winget::{PostInstallStep, Software};
pub struct AppState {
@@ -411,14 +412,6 @@ fn spawn_install_stream_reader<R: Read + Send + 'static>(
let mut is_progress = false;
if let Some(caps) = perc_re.captures(clean_line) {
if let Ok(p_val) = caps[1].parse::<f32>() {
let _ = handle.emit(
"install-status",
InstallProgress {
id: task_id.clone(),
status: "installing".to_string(),
progress: p_val / 100.0,
},
);
let _ = handle.emit(
"task-event",
TaskEventPayload {
@@ -439,14 +432,6 @@ fn spawn_install_stream_reader<R: Read + Send + 'static>(
let current = caps[1].parse::<f32>().unwrap_or(0.0);
let total = caps[2].parse::<f32>().unwrap_or(1.0);
if total > 0.0 {
let _ = handle.emit(
"install-status",
InstallProgress {
id: task_id.clone(),
status: "installing".to_string(),
progress: (current / total).min(1.0),
},
);
let _ = handle.emit(
"task-event",
TaskEventPayload {
@@ -488,35 +473,17 @@ fn emit_task_event(
message: Option<String>,
software_info: Option<Software>,
) {
let _ = handle.emit(
"task-event",
TaskEventPayload {
task_id: task_id.to_string(),
software_id: software_id.to_string(),
task_type: task_type.to_string(),
status: status.to_string(),
stage: stage.to_string(),
progress,
target_version: target_version.clone(),
message,
software_info,
},
);
let legacy_status = match status {
"queued" => "pending".to_string(),
"completed" => "success".to_string(),
"failed" => "error".to_string(),
_ => stage.to_string(),
};
let _ = handle.emit(
"install-status",
InstallProgress {
id: software_id.to_string(),
status: legacy_status,
progress,
},
task_event_service::emit_task_event(
handle,
task_id,
software_id,
task_type,
status,
stage,
progress,
target_version.clone(),
message,
software_info,
);
}