[Add] Performance graphs won't show if UI is small

This commit is contained in:
Alex-Emmet 2026-02-08 18:48:38 +01:00
commit b1ccd6bfc6

View file

@ -54,52 +54,70 @@ pub async fn render_tui() {
let mut terminal = TERMINAL.lock().await; let mut terminal = TERMINAL.lock().await;
let _ = terminal.draw(|f| { let _ = terminal.draw(|f| {
let area = f.area(); let area = f.area();
let chunks = Layout::default()
.direction(Direction::Horizontal) let is_horizontal = area.width >= 120;
.constraints([ let chunks = if is_horizontal {
Constraint::Percentage(40), Layout::default()
Constraint::Percentage(60), .direction(Direction::Horizontal)
Constraint::Min(40), .constraints([
]) Constraint::Percentage(40),
.split(area); Constraint::Percentage(60),
Constraint::Min(40),
])
.split(area)
} else {
Layout::default()
.direction(Direction::Vertical)
.constraints([Constraint::Percentage(40), Constraint::Percentage(60)])
.split(area)
};
let state = APP_STATE.lock().unwrap().clone(); let state = APP_STATE.lock().unwrap().clone();
// LOGS PANEL // LOGS PANEL
{ {
let borders = if is_horizontal {
Borders::LEFT.union(Borders::TOP).union(Borders::BOTTOM)
} else {
Borders::LEFT.union(Borders::RIGHT).union(Borders::TOP)
};
let items: Vec<ListItem> = state let items: Vec<ListItem> = state
.logs .logs
.iter() .iter()
.rev() .rev()
.map(|s| ListItem::new(s.clone())) .map(|s| ListItem::new(s.clone()))
.collect(); .collect();
let list = List::new(items).block( let list = List::new(items).block(Block::default().title("Logs").borders(borders));
Block::default()
.title("Logs")
.borders(Borders::LEFT.union(Borders::TOP).union(Borders::BOTTOM)),
);
f.render_widget(list, chunks[0]); f.render_widget(list, chunks[0]);
} }
// SETTINGS PANEL // SETTINGS PANEL
{ {
let borders = if is_horizontal {
Borders::LEFT.union(Borders::TOP).union(Borders::BOTTOM)
} else {
Borders::ALL
};
settings_panel::draw( settings_panel::draw(
f, f,
chunks[1], chunks[1],
Block::default() Block::default().title("Settings").borders(borders),
.title("Settings")
.borders(Borders::LEFT.union(Borders::TOP).union(Borders::BOTTOM)),
password, password,
state.clone(), state.clone(),
); );
draw_block_joins( if is_horizontal {
f, draw_block_joins(
chunks[1], f,
Borders::TOP.union(Borders::LEFT).union(Borders::BOTTOM), chunks[1],
Borders::LEFT, Borders::TOP.union(Borders::LEFT).union(Borders::BOTTOM),
); Borders::LEFT,
);
} else {
draw_block_joins(f, chunks[1], Borders::ALL, Borders::TOP);
}
} }
// PERFORMANCE GRAPHS // PERFORMANCE GRAPHS
{ if is_horizontal {
let stack = Layout::default() let stack = Layout::default()
.direction(Direction::Vertical) .direction(Direction::Vertical)
.constraints([ .constraints([