From 14b760d103c61590d4d9a4244e62fc6420a3b767 Mon Sep 17 00:00:00 2001 From: pythops Date: Fri, 13 Sep 2024 13:32:41 +0200 Subject: [PATCH] display selected and deselected filters --- oryx-tui/src/app.rs | 103 +++++++++++++++++++++++++++++--------------- 1 file changed, 69 insertions(+), 34 deletions(-) diff --git a/oryx-tui/src/app.rs b/oryx-tui/src/app.rs index f33ee53..a9dbfcd 100644 --- a/oryx-tui/src/app.rs +++ b/oryx-tui/src/app.rs @@ -245,47 +245,82 @@ impl App { let widths = [Constraint::Length(10), Constraint::Fill(1)]; let filters = [ Row::new(vec![ - Span::styled("Network", Style::new().bold()), - Span::from( - self.network_filter - .applied_protocols - .iter() - .map(|filter| filter.to_string()) - .collect::>() - .join(" "), - ), + Line::styled("Network", Style::new().bold()), + Line::from_iter(NetworkFilter::default().selected_protocols.iter().map( + |filter| { + if self.network_filter.applied_protocols.contains(&filter) { + Span::styled( + format!(" {} ", filter), + Style::default().light_green(), + ) + } else { + Span::styled( + format!("❌{} ", filter), + Style::default().light_red(), + ) + } + }, + )), ]), Row::new(vec![ - Span::styled("Transport", Style::new().bold()), - Span::from( - self.transport_filter - .applied_protocols - .iter() - .map(|filter| filter.to_string()) - .collect::>() - .join(" "), - ), + Line::styled("Transport", Style::new().bold()), + Line::from_iter(TransportFilter::default().selected_protocols.iter().map( + |filter| { + if self.transport_filter.applied_protocols.contains(&filter) { + Span::styled( + format!(" {} ", filter), + Style::default().light_green(), + ) + } else { + Span::styled( + format!("❌{} ", filter), + Style::default().light_red(), + ) + } + }, + )), ]), Row::new(vec![ - Span::styled("Link", Style::new().bold()), - Span::from( - self.link_filter - .applied_protocols - .iter() - .map(|filter| filter.to_string()) - .collect::>() - .join(" "), - ), + Line::styled("Link", Style::new().bold()), + Line::from_iter(LinkFilter::default().selected_protocols.iter().map( + |filter| { + if self.link_filter.applied_protocols.contains(&filter) { + Span::styled( + format!(" {} ", filter), + Style::default().light_green(), + ) + } else { + Span::styled( + format!("❌{} ", filter), + Style::default().light_red(), + ) + } + }, + )), ]), Row::new(vec![ - Span::styled("Direction", Style::new().bold()), - Span::from( - self.traffic_direction_filter - .applied_direction + Line::styled("Direction", Style::new().bold()), + Line::from_iter( + TrafficDirectionFilter::default() + .selected_direction .iter() - .map(|direction| direction.to_string()) - .collect::>() - .join(" "), + .map(|filter| { + if self + .traffic_direction_filter + .applied_direction + .contains(&filter) + { + Span::styled( + format!("󰞁 {} ", filter), + Style::default().light_green(), + ) + } else { + Span::styled( + format!("󰿝 {} ", filter), + Style::default().light_red(), + ) + } + }), ), ]), ];