broken
This commit is contained in:
@@ -1,9 +1,15 @@
|
||||
use std::time::{Duration, Instant};
|
||||
|
||||
use ratatui::style::Color;
|
||||
|
||||
use crate::state::Modal;
|
||||
|
||||
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
|
||||
pub enum FlashKind {
|
||||
#[default]
|
||||
Success,
|
||||
Error,
|
||||
Info,
|
||||
}
|
||||
|
||||
pub struct Sparkle {
|
||||
pub x: u16,
|
||||
pub y: u16,
|
||||
@@ -22,7 +28,7 @@ pub struct UiState {
|
||||
pub sparkles: Vec<Sparkle>,
|
||||
pub status_message: Option<String>,
|
||||
pub flash_until: Option<Instant>,
|
||||
pub flash_color: Color,
|
||||
pub flash_kind: FlashKind,
|
||||
pub modal: Modal,
|
||||
pub help_topic: usize,
|
||||
pub help_scroll: usize,
|
||||
@@ -41,7 +47,7 @@ impl Default for UiState {
|
||||
sparkles: Vec::new(),
|
||||
status_message: None,
|
||||
flash_until: None,
|
||||
flash_color: Color::Green,
|
||||
flash_kind: FlashKind::Success,
|
||||
modal: Modal::None,
|
||||
help_topic: 0,
|
||||
help_scroll: 0,
|
||||
@@ -57,14 +63,14 @@ impl Default for UiState {
|
||||
}
|
||||
|
||||
impl UiState {
|
||||
pub fn flash(&mut self, msg: &str, duration_ms: u64, color: Color) {
|
||||
pub fn flash(&mut self, msg: &str, duration_ms: u64, kind: FlashKind) {
|
||||
self.status_message = Some(msg.to_string());
|
||||
self.flash_until = Some(Instant::now() + Duration::from_millis(duration_ms));
|
||||
self.flash_color = color;
|
||||
self.flash_kind = kind;
|
||||
}
|
||||
|
||||
pub fn flash_color(&self) -> Option<Color> {
|
||||
if self.is_flashing() { Some(self.flash_color) } else { None }
|
||||
pub fn flash_kind(&self) -> Option<FlashKind> {
|
||||
if self.is_flashing() { Some(self.flash_kind) } else { None }
|
||||
}
|
||||
|
||||
pub fn set_status(&mut self, msg: String) {
|
||||
|
||||
Reference in New Issue
Block a user