Revert "refactor: mystery model 3"

This reverts commit 4b721f7543.
This commit is contained in:
Edward Langley
2026-04-01 00:46:55 -07:00
parent 4b721f7543
commit 3f84ba03cb

View File

@ -344,59 +344,61 @@ fn draw_title(f: &mut Frame, area: Rect, app: &App) {
} }
fn draw_content(f: &mut Frame, area: Rect, app: &App) { fn draw_content(f: &mut Frame, area: Rect, app: &App) {
let panel_count = [ let side_open = app.formula_panel_open || app.category_panel_open || app.view_panel_open;
app.formula_panel_open,
app.category_panel_open,
app.view_panel_open,
]
.iter()
.filter(|&&b| b)
.count();
let grid_area = if panel_count == 0 { if side_open {
area let side_w = 32u16;
} else {
let chunks = Layout::default() let chunks = Layout::default()
.direction(Direction::Horizontal) .direction(Direction::Horizontal)
.constraints([Constraint::Min(40), Constraint::Length(32)]) .constraints([Constraint::Min(40), Constraint::Length(side_w)])
.split(area); .split(area);
let constraints: Vec<Constraint> = f.render_widget(
vec![Constraint::Ratio(1, panel_count as u32); panel_count]; GridWidget::new(&app.model, &app.mode, &app.search_query),
let panel_areas = Layout::default() chunks[0],
.direction(Direction::Vertical) );
.constraints(constraints)
.split(chunks[1]); let side = chunks[1];
let panel_count = [
app.formula_panel_open,
app.category_panel_open,
app.view_panel_open,
]
.iter()
.filter(|&&b| b)
.count() as u16;
let ph = side.height / panel_count.max(1);
let mut y = side.y;
let mut slot = 0;
if app.formula_panel_open { if app.formula_panel_open {
let a = Rect::new(side.x, y, side.width, ph);
f.render_widget( f.render_widget(
FormulaPanel::new(&app.model, &app.mode, app.formula_cursor), FormulaPanel::new(&app.model, &app.mode, app.formula_cursor),
panel_areas[slot], a,
); );
slot += 1; y += ph;
} }
if app.category_panel_open { if app.category_panel_open {
let a = Rect::new(side.x, y, side.width, ph);
f.render_widget( f.render_widget(
CategoryPanel::new(&app.model, &app.mode, app.cat_panel_cursor), CategoryPanel::new(&app.model, &app.mode, app.cat_panel_cursor),
panel_areas[slot], a,
); );
slot += 1; y += ph;
} }
if app.view_panel_open { if app.view_panel_open {
let a = Rect::new(side.x, y, side.width, ph);
f.render_widget( f.render_widget(
ViewPanel::new(&app.model, &app.mode, app.view_panel_cursor), ViewPanel::new(&app.model, &app.mode, app.view_panel_cursor),
panel_areas[slot], a,
); );
} }
} else {
chunks[0] f.render_widget(
}; GridWidget::new(&app.model, &app.mode, &app.search_query),
area,
f.render_widget( );
GridWidget::new(&app.model, &app.mode, &app.search_query), }
grid_area,
);
} }
fn draw_tile_bar(f: &mut Frame, area: Rect, app: &App) { fn draw_tile_bar(f: &mut Frame, area: Rect, app: &App) {