From b4d543ed2e193eb5dc624d797383377534bebf97 Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Fri, 10 May 2024 13:18:46 +0200 Subject: [PATCH] inbox: Use new render props interface --- bin/commands/inbox/select/ui.rs | 35 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/bin/commands/inbox/select/ui.rs b/bin/commands/inbox/select/ui.rs index 71473324..374d426a 100644 --- a/bin/commands/inbox/select/ui.rs +++ b/bin/commands/inbox/select/ui.rs @@ -6,7 +6,7 @@ use tokio::sync::mpsc::UnboundedSender; use termion::event::Key; -use ratatui::layout::{Constraint, Layout, Rect}; +use ratatui::layout::{Constraint, Layout}; use ratatui::style::Stylize; use ratatui::text::{Line, Span, Text}; @@ -263,26 +263,27 @@ impl<'a: 'static> Widget for BrowsePage<'a> { self.shortcuts.update(state); } - fn render(&self, frame: &mut ratatui::Frame, area: Rect, _props: Option) { - let page_size = area.height.saturating_sub(6) as usize; + fn render(&self, frame: &mut ratatui::Frame, props: RenderProps) { + let page_size = props.area.height.saturating_sub(6) as usize; let [content_area, shortcuts_area] = - Layout::vertical([Constraint::Min(1), Constraint::Length(1)]).areas(area); + Layout::vertical([Constraint::Min(1), Constraint::Length(1)]).areas(props.area); if self.props.show_search { let [table_area, search_area] = Layout::vertical([Constraint::Min(1), Constraint::Length(2)]).areas(content_area); self.notifications - .render(frame, table_area, Some(RenderProps::default())); + .render(frame, RenderProps::from(table_area)); self.search - .render(frame, search_area, Some(RenderProps::focused())); + .render(frame, RenderProps::from(search_area).focus(true)); } else { self.notifications - .render(frame, content_area, Some(RenderProps::focused())); + .render(frame, RenderProps::from(content_area).focus(true)); } - self.shortcuts.render(frame, shortcuts_area, None); + self.shortcuts + .render(frame, RenderProps::from(shortcuts_area)); if page_size != self.props.page_size { let _ = self.base.action_tx.send(Action::BrowserPageSize(page_size)); @@ -362,12 +363,12 @@ impl Widget for Search { self.input.update(state); } - fn render(&self, frame: &mut ratatui::Frame, area: Rect, _props: Option) { + fn render(&self, frame: &mut ratatui::Frame, props: RenderProps) { let layout = Layout::horizontal(Constraint::from_mins([0])) .horizontal_margin(1) - .split(area); + .split(props.area); - self.input.render(frame, layout[0], None); + self.input.render(frame, RenderProps::from(layout[0])); } fn base_mut(&mut self) -> &mut BaseView { @@ -505,14 +506,16 @@ impl<'a: 'static> Widget for HelpPage<'a> { self.shortcuts.update(state); } - fn render(&self, frame: &mut ratatui::Frame, area: Rect, props: Option) { - let page_size = area.height.saturating_sub(6) as usize; + fn render(&self, frame: &mut ratatui::Frame, props: RenderProps) { + let page_size = props.area.height.saturating_sub(6) as usize; let [content_area, shortcuts_area] = - Layout::vertical([Constraint::Min(1), Constraint::Length(1)]).areas(area); + Layout::vertical([Constraint::Min(1), Constraint::Length(1)]).areas(props.area); - self.content.render(frame, content_area, props); - self.shortcuts.render(frame, shortcuts_area, None); + self.content + .render(frame, RenderProps::from(content_area).focus(true)); + self.shortcuts + .render(frame, RenderProps::from(shortcuts_area)); if page_size != self.props.page_size { let _ = self.base.action_tx.send(Action::HelpPageSize(page_size));