use ratatui::{
buffer::Buffer,
layout::Rect,
widgets::{Block, StatefulWidget, Widget},
};
use crate::ui::Theme;
use crate::ui::terminal::views::FileExplorer;
pub struct FileItemWidget<'a> {
block: Option<Block<'a>>,
theme: &'a Theme,
visual_selection: bool,
}
impl<'a> FileItemWidget<'a> {
pub fn new(theme: &'a Theme) -> Self {
Self {
block: None,
theme,
visual_selection: false,
}
}
pub fn block(mut self, block: Block<'a>) -> Self {
self.block = Some(block);
self
}
pub fn visual_selection(mut self, active: bool) -> Self {
self.visual_selection = active;
self
}
}
impl<'a> StatefulWidget for FileItemWidget<'a> {
type State = FileExplorer;
fn render(self, area: Rect, buf: &mut Buffer, _state: &mut Self::State) {
let area = match self.block {
Some(b) => {
let inner_area = b.inner(area);
b.render(area, buf);
inner_area
}
None => area,
};
let height = area.height as usize;
if height == 0 {}
}
}