use ratatui::Frame;
use ratatui::layout::Position;
use ratatui::layout::Rect;
use tui_pane::Hittable;
use tui_pane::Renderable;
use tui_pane::SettingsPane;
use super::FinderPane;
use crate::tui::finder;
use crate::tui::pane::HoverTarget;
use crate::tui::pane::PaneRenderCtx;
use crate::tui::panes;
use crate::tui::panes::PaneId;
use crate::tui::settings;
impl Renderable<PaneRenderCtx<'_>> for SettingsPane {
fn render(&mut self, frame: &mut Frame<'_>, _: Rect, ctx: &PaneRenderCtx<'_>) {
settings::render_settings_pane_body(frame, self, ctx);
}
}
impl Renderable<PaneRenderCtx<'_>> for FinderPane {
fn render(&mut self, frame: &mut Frame<'_>, area: Rect, ctx: &PaneRenderCtx<'_>) {
finder::render_finder_pane_body(frame, area, self, ctx);
}
}
impl Hittable<HoverTarget> for FinderPane {
fn hit_test_at(&self, pos: Position) -> Option<HoverTarget> {
let row = panes::hit_test_table_row(&self.viewport, pos)?;
Some(HoverTarget::PaneRow {
pane: PaneId::Finder,
row,
})
}
}