From fb1bfe4ac85efa2c1123b3bf2af4eb5b879d273b Mon Sep 17 00:00:00 2001 From: EdJoPaTo Date: Wed, 15 May 2024 22:54:50 +0200 Subject: [PATCH] refactor: use MqttHistory inside TopicOverview::draw --- Cargo.lock | 14 +++++++------- src/interactive/mod.rs | 9 +-------- src/interactive/topic_overview.rs | 18 ++++++++---------- 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 409da5f..e0f5a03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1094,9 +1094,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092474d1a01ea8278f69e6a358998405fae5b8b963ddaeb2b0b04a128bf1dfb0" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ryu" @@ -1150,9 +1150,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.201" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] @@ -1168,9 +1168,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.201" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", @@ -1442,7 +1442,7 @@ dependencies = [ [[package]] name = "tui-tree-widget" version = "0.19.0" -source = "git+https://github.com/EdJoPaTo/tui-rs-tree-widget?branch=tree-data-trait#49320505674cfe2e27d5052f182745f131c84598" +source = "git+https://github.com/EdJoPaTo/tui-rs-tree-widget?branch=tree-data-trait#81692d0255b28986c57262b841c6d3fc5cc14026" dependencies = [ "ratatui", "serde_json", diff --git a/src/interactive/mod.rs b/src/interactive/mod.rs index ab03c01..76aa7c9 100644 --- a/src/interactive/mod.rs +++ b/src/interactive/mod.rs @@ -750,17 +750,10 @@ impl App { } }); - let topic_amount = history.total_topics(); - let message_amount = history.total_messages(); - - let tree_items = history.to_tree_items(); - self.topic_overview.draw( frame, overview_area, - topic_amount, - message_amount, - tree_items, + &history, matches!(self.focus, ElementInFocus::TopicOverview), ); drop(history); diff --git a/src/interactive/topic_overview.rs b/src/interactive/topic_overview.rs index 26a07fe..ba397cc 100644 --- a/src/interactive/topic_overview.rs +++ b/src/interactive/topic_overview.rs @@ -2,8 +2,9 @@ use ratatui::layout::{Alignment, Rect}; use ratatui::style::{Color, Style}; use ratatui::widgets::{Block, BorderType, Scrollbar, ScrollbarOrientation}; use ratatui::Frame; -use tui_tree_widget::{Tree, TreeItem, TreeState}; +use tui_tree_widget::{Tree, TreeState}; +use super::mqtt_history::MqttHistory; use crate::interactive::ui::{focus_color, get_row_inside, BORDERS_TOP_RIGHT}; #[derive(Default)] @@ -22,16 +23,13 @@ impl TopicOverview { Some(selected.join("/")) } - pub fn draw( - &mut self, - frame: &mut Frame, - area: Rect, - topic_amount: usize, - message_amount: usize, - tree_items: Vec>, - has_focus: bool, - ) { + pub fn draw(&mut self, frame: &mut Frame, area: Rect, history: &MqttHistory, has_focus: bool) { + let topic_amount = history.total_topics(); + let message_amount = history.total_messages(); let title = format!("Topics ({topic_amount}, {message_amount} messages)"); + + let tree_items = history.to_tree_items(); + let focus_color = focus_color(has_focus); let widget = Tree::new(&tree_items) .experimental_scrollbar(Some(