use crate::tui::theme::Theme;
use crate::tui::widgets::{ChatState, InputState};
pub struct UIState {
pub chat_state: ChatState,
pub input_state: InputState,
pub theme: Theme,
pub selected_message: Option<usize>,
pub attachment_focused: bool,
pub selected_attachment: usize,
pub attachment_area_y: Option<u16>,
}
impl UIState {
pub fn new() -> Self {
Self {
chat_state: ChatState::default(),
input_state: InputState::default(),
theme: Theme::dark(),
selected_message: None,
attachment_focused: false,
selected_attachment: 0,
attachment_area_y: None,
}
}
}
impl Default for UIState {
fn default() -> Self {
Self::new()
}
}