use ratatui::prelude::*;
use std::rc::Rc;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Layers {
pub zero: Rc<[Rect]>,
pub one: Rc<[Rect]>,
pub details: Rect,
pub details_inner: Rc<[Rect]>,
}
impl Layers {
pub fn new(area: Rect) -> Self {
let zero = Layout::default()
.direction(Direction::Vertical)
.constraints(vec![
Constraint::Max(2),
Constraint::Min(1),
Constraint::Max(3),
])
.split(area.inner(&Margin {
horizontal: 1,
vertical: 1,
}));
let one = Layout::default()
.direction(Direction::Horizontal)
.constraints(vec![Constraint::Min(40), Constraint::Min(40)])
.split(zero[1]);
let details = one[1];
let details_inner = Layout::default()
.direction(Direction::Vertical)
.constraints(vec![
Constraint::Min(8),
Constraint::Min(8),
Constraint::Min(20),
])
.split(details);
Layers {
zero,
one,
details,
details_inner,
}
}
}