mod banner;
mod graveyard;
mod grimoire;
mod inspector;
mod status_bar;
#[allow(unused_imports)]
pub use graveyard::{
calculate_endpoint_position, classify_endpoint, classify_latency, draw_coffin_block,
draw_latency_rings, has_latency_data, is_heavy_talker, particle_position, EndpointNode,
EndpointType,
};
use crate::app::AppState;
use ratatui::{
layout::{Constraint, Direction, Layout},
Frame,
};
use banner::render_banner;
use graveyard::render_network_map;
use grimoire::render_grimoire;
use inspector::render_soul_inspector;
use status_bar::render_status_bar;
pub fn draw(f: &mut Frame, app: &mut AppState) {
let size = f.area();
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([
Constraint::Length(8), Constraint::Min(0), Constraint::Length(3), ])
.split(size);
render_banner(f, chunks[0], app);
let body_chunks = Layout::default()
.direction(Direction::Horizontal)
.constraints([
Constraint::Percentage(65), Constraint::Percentage(35), ])
.split(chunks[1]);
render_network_map(f, body_chunks[0], app);
let right_chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([
Constraint::Percentage(60), Constraint::Percentage(40), ])
.split(body_chunks[1]);
render_soul_inspector(f, right_chunks[0], app);
render_grimoire(f, right_chunks[1], app);
render_status_bar(f, chunks[2], app);
}