refactor: mystery model #1
This commit is contained in:
54
src/main.rs
54
src/main.rs
@ -466,24 +466,38 @@ fn draw_command_bar(f: &mut Frame, area: Rect, app: &App) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn center_rect(area: Rect, width: u16, height: u16) -> Rect {
|
||||||
|
let w = width.min(area.width);
|
||||||
|
let h = height.min(area.height);
|
||||||
|
let x = area.x + area.width.saturating_sub(w) / 2;
|
||||||
|
let y = area.y + area.height.saturating_sub(h) / 2;
|
||||||
|
Rect::new(x, y, w, h)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn draw_popup_frame(
|
||||||
|
f: &mut Frame,
|
||||||
|
popup: Rect,
|
||||||
|
title: &str,
|
||||||
|
border_color: Color,
|
||||||
|
) -> Rect {
|
||||||
|
f.render_widget(Clear, popup);
|
||||||
|
let block = Block::default()
|
||||||
|
.borders(Borders::ALL)
|
||||||
|
.border_style(Style::default().fg(border_color))
|
||||||
|
.title(title);
|
||||||
|
let inner = block.inner(popup);
|
||||||
|
f.render_widget(block, popup);
|
||||||
|
inner
|
||||||
|
}
|
||||||
|
|
||||||
fn draw_export_prompt(f: &mut Frame, area: Rect, app: &App) {
|
fn draw_export_prompt(f: &mut Frame, area: Rect, app: &App) {
|
||||||
let buf = if let AppMode::ExportPrompt { buffer } = &app.mode {
|
let buf = if let AppMode::ExportPrompt { buffer } = &app.mode {
|
||||||
buffer.as_str()
|
buffer.as_str()
|
||||||
} else {
|
} else {
|
||||||
""
|
""
|
||||||
};
|
};
|
||||||
let popup_w = 64u16.min(area.width);
|
let popup = center_rect(area, 64, 3);
|
||||||
let x = area.x + area.width.saturating_sub(popup_w) / 2;
|
let inner = draw_popup_frame(f, popup, " Export CSV — path (Esc cancel) ", Color::Yellow);
|
||||||
let y = area.y + area.height / 2;
|
|
||||||
let popup_area = Rect::new(x, y, popup_w, 3);
|
|
||||||
|
|
||||||
f.render_widget(Clear, popup_area);
|
|
||||||
let block = Block::default()
|
|
||||||
.borders(Borders::ALL)
|
|
||||||
.border_style(Style::default().fg(Color::Yellow))
|
|
||||||
.title(" Export CSV — path (Esc cancel) ");
|
|
||||||
let inner = block.inner(popup_area);
|
|
||||||
f.render_widget(block, popup_area);
|
|
||||||
f.render_widget(
|
f.render_widget(
|
||||||
Paragraph::new(format!("{buf}▌")).style(Style::default().fg(Color::Green)),
|
Paragraph::new(format!("{buf}▌")).style(Style::default().fg(Color::Green)),
|
||||||
inner,
|
inner,
|
||||||
@ -491,20 +505,8 @@ fn draw_export_prompt(f: &mut Frame, area: Rect, app: &App) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn draw_welcome(f: &mut Frame, area: Rect, _app: &App) {
|
fn draw_welcome(f: &mut Frame, area: Rect, _app: &App) {
|
||||||
let w = 58u16.min(area.width.saturating_sub(4));
|
let popup = center_rect(area, 58, 20);
|
||||||
let h = 20u16.min(area.height.saturating_sub(2));
|
let inner = draw_popup_frame(f, popup, " Welcome to improvise ", Color::Blue);
|
||||||
let x = area.x + area.width.saturating_sub(w) / 2;
|
|
||||||
let y = area.y + area.height.saturating_sub(h) / 2;
|
|
||||||
let popup = Rect::new(x, y, w, h);
|
|
||||||
|
|
||||||
f.render_widget(Clear, popup);
|
|
||||||
|
|
||||||
let block = Block::default()
|
|
||||||
.borders(Borders::ALL)
|
|
||||||
.border_style(Style::default().fg(Color::Blue))
|
|
||||||
.title(" Welcome to improvise ");
|
|
||||||
let inner = block.inner(popup);
|
|
||||||
f.render_widget(block, popup);
|
|
||||||
|
|
||||||
let lines: &[(&str, Style)] = &[
|
let lines: &[(&str, Style)] = &[
|
||||||
(
|
(
|
||||||
|
|||||||
Reference in New Issue
Block a user