use crate::tui::model::{Model, TopicMonitor, TopicTab};
use super::selected;
pub const MAX: usize = 8;
pub fn current(m: &Model) -> Option<&TopicMonitor> {
let topic = selected(m)?;
if topic.is_distributor() {
return None;
}
m.topics.previews.iter().find(|p| p.name == topic.name)
}
pub fn prepare(m: &mut Model) {
let Some(topic) = selected(m) else { return };
if topic.is_distributor() {
return;
}
let previews = &mut m.topics.previews;
match previews.iter().position(|p| p.name == topic.name) {
Some(at) => {
let kept = previews.remove(at);
previews.push(kept);
}
None => previews.push(TopicMonitor::new(
topic.name,
TopicTab::Charts,
false,
topic.dead_letter,
)),
}
if previews.len() > MAX {
previews.remove(0);
}
}