terminal_ui/ui/
ui_loading_popup.rs

1use crate::{app::App, styles::selected_style};
2use tui::{
3    backend::Backend,
4    layout::{Constraint, Direction, Layout, Rect},
5    widgets::{Block, Borders, Clear, Paragraph},
6    Frame,
7};
8
9use super::ui_popup::centered_rect;
10
11fn draw_navigation_input<B>(f: &mut Frame<B>, app: &App, area: Rect)
12where
13    B: Backend,
14{
15    let format_regex_widget = Paragraph::new("...")
16        .style(selected_style(app.color))
17        .block(Block::default().borders(Borders::ALL).title("Loading"));
18
19    f.render_widget(format_regex_widget, area);
20}
21
22pub fn draw_loading_popup<B>(f: &mut Frame<B>, app: &mut App)
23where
24    B: Backend,
25{
26    let block = Block::default()
27        .borders(Borders::ALL)
28        .border_style(selected_style(app.color));
29
30    let area = centered_rect(60, 7, f.size());
31    f.render_widget(Clear, area); //this clears out the background
32    f.render_widget(block, area);
33
34    let popup_layout = Layout::default()
35        .direction(Direction::Horizontal)
36        .constraints([Constraint::Percentage(100)].as_ref())
37        .margin(1)
38        .split(area);
39    let popup_layout = Layout::default()
40        .direction(Direction::Vertical)
41        .constraints([Constraint::Length(3)].as_ref())
42        .margin(1)
43        .split(popup_layout[0]);
44
45    draw_navigation_input(f, app, popup_layout[0]);
46}