From ed58ddceb9dd46d0fa4c85ea3df711fa43d4dc6c Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Wed, 6 Aug 2025 12:29:19 -0700 Subject: [PATCH] add preview of text receive requests --- src/app/widgets.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/app/widgets.rs b/src/app/widgets.rs index c869362..e9ef275 100644 --- a/src/app/widgets.rs +++ b/src/app/widgets.rs @@ -9,8 +9,8 @@ use ratatui::{ symbols::border, text::{Line, Text, ToLine}, widgets::{ - Block, Borders, List, ListItem, ListState, Padding, Paragraph, Row, Table, TableState, - Widget, + Block, Borders, Clear, List, ListItem, ListState, Padding, Paragraph, Row, Table, + TableState, Widget, }, }; use tui_logger::{TuiLoggerLevelOutput, TuiLoggerWidget, TuiWidgetState}; @@ -235,7 +235,7 @@ fn outer_frame(screen: &CurrentScreen, menu: &Line, area: Rect, buf: &mut Buffer fn text_popup(text: &str, title: &str, area: Rect, buf: &mut Buffer) { let title = Line::from(title.bold()); let block = Block::bordered().title(title.centered()); - ratatui::widgets::Clear.render(area, buf); + Clear.render(area, buf); block.render(area, buf); @@ -310,6 +310,19 @@ fn receive_requests( .row_highlight_style(Style::new().bg(Color::Rgb(99, 99, 99))); ratatui::widgets::StatefulWidget::render(table, area, buf, state); + + if let Some(idx) = state.selected() + //&& let Some(area) = preview_area + { + let area = centered_rect(area, Constraint::Percentage(80), Constraint::Max(7)); + let request = requests[idx]; + if let Some(md) = request.files.values().next() + && let Some(ref preview) = md.preview + { + Clear.render(area, buf); + text_popup(preview, " preview ", area, buf); + } + } } fn peers(peers: &[Peer], state: &mut ListState, area: Rect, buf: &mut Buffer) {