MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / tick

Method tick

crates/opencode-tui/src/components/toast.rs:56–89  ·  view source on GitHub ↗
(&mut self, delta_ms: u64)

Source from the content-addressed store, hash-verified

54 }
55
56 pub fn tick(&mut self, delta_ms: u64) -> bool {
57 if self.message.is_none() {
58 return false;
59 }
60
61 let previous_phase = self.phase;
62 let previous_elapsed = self.phase_elapsed_ms;
63 let had_message = self.message.is_some();
64
65 self.phase_elapsed_ms = self.phase_elapsed_ms.saturating_add(delta_ms);
66 match self.phase {
67 ToastPhase::Entering if self.phase_elapsed_ms >= TRANSITION_MS => {
68 self.phase = ToastPhase::Visible;
69 self.phase_elapsed_ms = 0;
70 }
71 ToastPhase::Visible if self.phase_elapsed_ms >= self.duration_ms => {
72 self.phase = ToastPhase::Exiting;
73 self.phase_elapsed_ms = 0;
74 }
75 ToastPhase::Exiting if self.phase_elapsed_ms >= TRANSITION_MS => {
76 self.message = None;
77 self.phase = ToastPhase::Entering;
78 self.phase_elapsed_ms = 0;
79 }
80 _ => {}
81 }
82
83 if self.phase != previous_phase || self.message.is_some() != had_message {
84 return true;
85 }
86
87 matches!(self.phase, ToastPhase::Entering | ToastPhase::Exiting)
88 && self.phase_elapsed_ms != previous_elapsed
89 }
90
91 pub fn is_visible(&self) -> bool {
92 self.message.is_some()

Calls

no outgoing calls