aboutsummaryrefslogtreecommitdiff
path: root/src/ui/status.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-28 14:56:51 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-28 14:56:53 +0300
commit81f355fadac7d0d45b077dfc28f9f679add6bbb6 (patch)
tree8c734b443c28ee4de8c4058f5a0c25cafbd057bd /src/ui/status.rs
parent1491b7dd9c992ef0ad2b763f3e450befaf25c47f (diff)
perf: replace agent spinners with static status marks
Diffstat (limited to 'src/ui/status.rs')
-rw-r--r--src/ui/status.rs31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/ui/status.rs b/src/ui/status.rs
index ede38b85..a7399285 100644
--- a/src/ui/status.rs
+++ b/src/ui/status.rs
@@ -203,21 +203,6 @@ pub(super) fn state_dot(state: AgentState, seen: bool, p: &Palette) -> (&'static
}
}
-pub(super) fn agent_icon(
- state: AgentState,
- seen: bool,
- tick: u32,
- p: &Palette,
-) -> (&'static str, Style) {
- match (state, seen) {
- (AgentState::Blocked, _) => ("◉", Style::default().fg(p.red)),
- (AgentState::Working, _) => (super::spinner_frame(tick), Style::default().fg(p.yellow)),
- (AgentState::Idle, false) => ("●", Style::default().fg(p.teal)),
- (AgentState::Idle, true) => ("✓", Style::default().fg(p.green)),
- (AgentState::Unknown, _) => ("○", Style::default().fg(p.overlay0)),
- }
-}
-
pub(super) fn state_label(state: AgentState, seen: bool) -> &'static str {
match (state, seen) {
(AgentState::Blocked, _) => "blocked",
@@ -260,6 +245,22 @@ mod tests {
}
#[test]
+ fn state_dots_use_aligned_static_workspace_marks() {
+ let palette = Palette::catppuccin();
+ for (state, seen, symbol, color) in [
+ (AgentState::Blocked, true, "●", palette.red),
+ (AgentState::Working, true, "●", palette.yellow),
+ (AgentState::Idle, false, "●", palette.teal),
+ (AgentState::Idle, true, "○", palette.green),
+ (AgentState::Unknown, true, "·", palette.overlay0),
+ ] {
+ let (actual_symbol, style) = state_dot(state, seen, &palette);
+ assert_eq!(actual_symbol, symbol);
+ assert_eq!(style.fg, Some(color));
+ }
+ }
+
+ #[test]
fn toast_rect_uses_configured_corner() {
let area = Rect::new(10, 20, 100, 40);
let toast = toast();