tabiew 0.13.1

A lightweight TUI application to view and query tabular data files, such as CSV, TSV, and parquet.
use crossterm::event::KeyEvent;
use ratatui::{buffer::Buffer, layout::Rect};

use crate::handler::message::Message;

#[derive(Debug, Clone, Copy)]
pub enum FocusState {
    Focused,
    NotFocused,
}

impl FocusState {
    pub fn is_focused(&self) -> bool {
        matches!(self, FocusState::Focused)
    }
}

#[allow(unused_variables)]
pub trait Component {
    fn render(&mut self, area: Rect, buf: &mut Buffer, focus_state: FocusState);
    fn handle(&mut self, event: KeyEvent) -> bool {
        false
    }
    fn update(&mut self, action: &Message, focus_state: FocusState) {}
    fn tick(&mut self) {}
}