diff --git a/bin/commands/issue/select/ui.rs b/bin/commands/issue/select/ui.rs index c9e0e116..7aa82d40 100644 --- a/bin/commands/issue/select/ui.rs +++ b/bin/commands/issue/select/ui.rs @@ -8,7 +8,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}; @@ -270,26 +270,26 @@ 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.issues - .render(frame, table_area, Some(RenderProps::default())); + self.issues.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.issues - .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)); @@ -369,12 +369,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 { @@ -512,14 +512,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));