From 6e8612f319d1475f0034e57f0145b4163a534797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 8 Aug 2024 14:54:29 +0100 Subject: feat: refresh "Download" progress bar with a spinner (#24913) This commit adds a spinner to "Download" progress bar and makes it multiline, showing up to 4 lines of documents being downloaded. --- cli/util/progress_bar/mod.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'cli/util/progress_bar/mod.rs') diff --git a/cli/util/progress_bar/mod.rs b/cli/util/progress_bar/mod.rs index 6d247818d..91bf4950f 100644 --- a/cli/util/progress_bar/mod.rs +++ b/cli/util/progress_bar/mod.rs @@ -223,23 +223,23 @@ impl DrawThreadRenderer for ProgressBarInner { if state.entries.is_empty() { return String::new(); } - let preferred_entry = state + let display_entries = state .entries .iter() - .find(|e| e.percent() > 0f64) - .or_else(|| state.entries.iter().last()) - .unwrap(); + .map(|e| ProgressDataDisplayEntry { + prompt: e.prompt, + message: e.message.to_string(), + position: e.position(), + total_size: e.total_size(), + }) + .collect::>(); + ProgressData { duration: state.start_time.elapsed(), terminal_width: size.cols, pending_entries: state.entries.len(), total_entries: state.total_entries, - display_entry: ProgressDataDisplayEntry { - prompt: preferred_entry.prompt, - message: preferred_entry.message.clone(), - position: preferred_entry.position(), - total_size: preferred_entry.total_size(), - }, + display_entries, percent_done: { let mut total_percent_sum = 0f64; for entry in &state.entries { @@ -273,7 +273,7 @@ impl ProgressBar { Arc::new(renderer::BarProgressBarRenderer) } ProgressBarStyle::TextOnly => { - Arc::new(renderer::TextOnlyProgressBarRenderer) + Arc::new(renderer::TextOnlyProgressBarRenderer::default()) } }), } -- cgit v1.2.3