From 2fcaef1c26d04a90411d4c1f3213f6702fc330e5 Mon Sep 17 00:00:00 2001 From: Anthony Shew Date: Fri, 28 Jun 2024 12:32:06 -0600 Subject: [PATCH] fix(ui): Use double arrow instead of spinner for active tasks. (#8632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Description User feedback has let us know that the constant spinner on persistent tasks can be annoying. Let's use the static double arrow instead to indicate that the tasks are in-progress. ### Testing Instructions ЁЯСА New: ![CleanShot 2024-06-28 at 11 04 22](https://github.com/vercel/turbo/assets/35677084/928e6c3d-78ad-484b-b6bf-7c22c14a611c) --- crates/turborepo-ui/src/tui/spinner.rs | 60 ++++++++++++++------------ 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/crates/turborepo-ui/src/tui/spinner.rs b/crates/turborepo-ui/src/tui/spinner.rs index b4c03691cc708..60397483d1401 100644 --- a/crates/turborepo-ui/src/tui/spinner.rs +++ b/crates/turborepo-ui/src/tui/spinner.rs @@ -1,6 +1,8 @@ use std::time::{Duration, Instant}; -const SPINNER_FRAMES: &[&str] = ["таЛ", "таЩ", "та╣", "та╕", "та╝", "та┤", "таж", "таз", "таЗ", "таП"].as_slice(); +const SPINNER_FRAMES: &[&str] = ["┬╗"].as_slice(); +// const SPINNER_FRAMES: &[&str] = ["таЛ", "таЩ", "та╣", "та╕", "та╝", "та┤", "таж", "таз", "таЗ", +// "таП"].as_slice(); const FRAMERATE: Duration = Duration::from_millis(80); #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -39,30 +41,32 @@ impl Default for SpinnerState { } } -#[cfg(test)] -mod test { - use super::*; - - #[test] - fn test_inital_update() { - let mut spinner = SpinnerState::new(); - assert!(spinner.last_render.is_none()); - assert_eq!(spinner.frame, 0); - spinner.update(); - assert!(spinner.last_render.is_some()); - assert_eq!(spinner.frame, 0, "initial update doesn't move frame"); - } - - #[test] - fn test_frame_update() { - let mut spinner = SpinnerState::new(); - // set last update to time that happened far before the spinner should increment - let prev_render = Instant::now() - (FRAMERATE * 2); - spinner.last_render = Some(prev_render); - assert_eq!(spinner.frame, 0); - spinner.update(); - assert_eq!(spinner.frame, 1); - let last_render = spinner.last_render.unwrap(); - assert!(prev_render < last_render, "last render should be updated"); - } -} +// Removed with iteration to double arrow symbol +// #[cfg(test)] +// mod test { +// use super::*; +// +// #[test] +// fn test_inital_update() { +// let mut spinner = SpinnerState::new(); +// assert!(spinner.last_render.is_none()); +// assert_eq!(spinner.frame, 0); +// spinner.update(); +// assert!(spinner.last_render.is_some()); +// assert_eq!(spinner.frame, 0, "initial update doesn't move frame"); +// } +// +// Removed with change to double arrow +// #[test] +// fn test_frame_update() { +// let mut spinner = SpinnerState::new(); +// // set last update to time that happened far before the spinner +// should increment let prev_render = Instant::now() - (FRAMERATE * 2); +// spinner.last_render = Some(prev_render); +// assert_eq!(spinner.frame, 0); +// spinner.update(); +// assert_eq!(spinner.frame, 1); +// let last_render = spinner.last_render.unwrap(); +// assert!(prev_render < last_render, "last render should be updated"); +// } +// }