From eca556f976d8308bffdf64dbcd6eb5cafb8685cd Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sat, 31 Aug 2024 07:26:44 +0100 Subject: [PATCH] feat(tui): use moving heart emoji as liveness indicator The heart moves between two positions every second as long as the ui is being updated. --- crates/cli/src/tui/actor/model.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/crates/cli/src/tui/actor/model.rs b/crates/cli/src/tui/actor/model.rs index b64e740..231fe41 100644 --- a/crates/cli/src/tui/actor/model.rs +++ b/crates/cli/src/tui/actor/model.rs @@ -40,6 +40,15 @@ impl State { *tick += 1; } } + + fn beating_heart(&self) -> String { + if self.last_update.duration_since(self.started).as_secs() % 2 == 0 { + "💚 " + } else { + " 💚" + } + .to_string() + } } #[derive(Clone, Debug, PartialEq, Eq)] @@ -326,11 +335,8 @@ impl StatefulWidget for &State { .title( Title::from(Line::from(vec![ " [q]uit ".into(), - format!( - "{}s ", - self.last_update.duration_since(self.started).as_secs() - ) - .into(), + self.beating_heart().into(), + " ".into(), ])) .alignment(Alignment::Center) .position(ratatui::widgets::block::Position::Bottom),