use crate::app::{AppState, PanelState};
use ratatui::{
prelude::*,
widgets::{Block, Borders, Paragraph, Sparkline},
};
pub(super) fn render_stat(frame: &mut Frame, area: Rect, p: &PanelState, app: &AppState) {
let theme = &app.theme;
let visible_series = p.series.iter().find(|s| s.visible);
let value = visible_series.and_then(|s| s.value);
let color = value
.and_then(|value| p.get_color_for_value(value))
.unwrap_or(theme.palette[0]);
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([Constraint::Percentage(60), Constraint::Percentage(40)])
.split(area);
let val_str = visible_series
.map(|_| p.display.format_value(value))
.unwrap_or_else(|| "No data".to_string());
let big_value = Paragraph::new(val_str)
.style(Style::default().fg(color).add_modifier(Modifier::BOLD))
.alignment(Alignment::Center)
.block(Block::default().borders(Borders::NONE));
frame.render_widget(big_value, chunks[0]);
if let Some(s) = visible_series {
let data: Vec<u64> = s.points.iter().map(|(_, v)| *v as u64).collect();
let sparkline = Sparkline::default()
.block(Block::default().borders(Borders::NONE))
.data(&data)
.style(Style::default().fg(color));
frame.render_widget(sparkline, chunks[1]);
}
}