From 68e444bfc393eb46bac2b99eb57697bb9b0451af Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 28 Jan 2023 21:53:21 +0000 Subject: [PATCH] fix: deadlock on draw logs when no containers found --- src/ui/draw_blocks.rs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/ui/draw_blocks.rs b/src/ui/draw_blocks.rs index a3d384c..d1c844c 100644 --- a/src/ui/draw_blocks.rs +++ b/src/ui/draw_blocks.rs @@ -227,19 +227,24 @@ pub fn logs( .alignment(Alignment::Center); f.render_widget(paragraph, area); } else { - let items = app_data.lock().get_logs(); - let items = List::new(items) - .block(block()) - .highlight_symbol(ARROW) - .highlight_style(Style::default().add_modifier(Modifier::BOLD)); + let logs = app_data.lock().get_logs(); - if let Some(i) = app_data.lock().get_log_state() { - f.render_stateful_widget(items, area, i); + if logs.is_empty() { + let paragraph = Paragraph::new("no logs found") + .block(block()) + .alignment(Alignment::Center); + f.render_widget(paragraph, area); } else { - let paragraph = Paragraph::new("no logs found") + let items = List::new(logs) .block(block()) - .alignment(Alignment::Center); - f.render_widget(paragraph, area); + .highlight_symbol(ARROW) + .highlight_style(Style::default().add_modifier(Modifier::BOLD)); + + // This should always return Some, as logs is not empty + if let Some(i) = app_data.lock().get_log_state() { + f.render_stateful_widget(items, area, i); + } + } } }