From 53625e67cbc64405111d63369712ba182236929f Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Fri, 21 Feb 2025 11:41:26 +0000 Subject: [PATCH] fix: reduce render execution in the err loop --- src/ui/mod.rs | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 3b17ea7..812acaa 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -126,30 +126,35 @@ impl Ui { let mut seconds = 5; let colors = self.app_data.lock().config.app_colors; let keymap = self.app_data.lock().config.keymap.clone(); + let mut render = true; loop { if self.now.elapsed() >= std::time::Duration::from_secs(1) { seconds -= 1; self.now = Instant::now(); + render = true; if seconds < 1 { break; } } - if self - .terminal - .draw(|f| { - draw_blocks::error::draw( - colors, - &AppError::DockerConnect, - f, - &keymap, - Some(seconds), - ); - }) - .is_err() + if render + && self + .terminal + .draw(|f| { + draw_blocks::error::draw( + colors, + &AppError::DockerConnect, + f, + &keymap, + Some(seconds), + ); + }) + .is_err() { return Err(AppError::Terminal); } + render = false; + std::thread::sleep(POLL_RATE); } Ok(()) }