|
1 | 1 | use tui::{ |
2 | | - layout::Alignment, |
3 | | - style::{Modifier, Style}, |
4 | | - text::{Span, Spans}, |
5 | | - widgets::{Block, BorderType, Borders, Paragraph}, |
6 | | - Terminal |
| 2 | + layout::Alignment, |
| 3 | + style::{ Modifier, Style, Color }, |
| 4 | + text::Span, |
| 5 | + widgets::{ Block, BorderType, Borders, Paragraph }, |
7 | 6 | }; |
8 | 7 |
|
9 | | - |
10 | 8 | pub fn render_waiting_screen<B: tui::backend::Backend>( |
11 | | - terminal: &mut Terminal<B>, |
| 9 | + terminal: &mut tui::Terminal<B> |
12 | 10 | ) -> Result<(), Box<dyn std::error::Error>> { |
13 | | - let loading_screen = vec![ |
14 | | - Spans::from(Span::styled("Loading GitHub data...", Style::default().add_modifier(Modifier::BOLD))), |
15 | | - Spans::from(Span::raw("")), |
16 | | - Spans::from(Span::styled("Please wait while we fetch the data from GitHub...", Style::default())), |
17 | | - ]; |
| 11 | + let loading_text = |
| 12 | + r#" |
| 13 | +
|
| 14 | + ██████╗ ██╗████████╗██╗ ██╗██╗ ██╗██████╗ |
| 15 | + ██╔════╝ ██║╚══██╔══╝██║ ██║██║ ██║██╔══██╗ |
| 16 | + ██║ ███╗██║ ██║ ███████║██║ ██║██████╔╝ |
| 17 | + ██║ ██║██║ ██║ ██╔══██║██║ ██║██╔══██╗ |
| 18 | + ╚██████╔╝██║ ██║ ██║ ██║╚██████╔╝██████╔╝ |
| 19 | + ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ |
| 20 | +
|
| 21 | + █████╗ ███████╗███████╗██╗███████╗████████╗ █████╗ ███╗ ██╗████████╗ |
| 22 | + ██╔══██╗██╔════╝██╔════╝██║██╔════╝╚══██╔══╝██╔══██╗████╗ ██║╚══██╔══╝ |
| 23 | + ███████║███████╗███████╗██║███████╗ ██║ ███████║██╔██╗ ██║ ██║ |
| 24 | + ██╔══██║╚════██║╚════██║██║╚════██║ ██║ ██╔══██║██║╚██╗██║ ██║ |
| 25 | + ██║ ██║███████║███████║██║███████║ ██║ ██║ ██║██║ ╚████║ ██║ |
| 26 | + ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ |
| 27 | +
|
| 28 | + "#; |
| 29 | + |
| 30 | + let loading_screen_paragraph = Paragraph::new(loading_text) |
| 31 | + .alignment(Alignment::Center) |
| 32 | + .block( |
| 33 | + Block::default() |
| 34 | + .title( |
| 35 | + Span::styled("GitHub Assistant", Style::default().add_modifier(Modifier::BOLD)) |
| 36 | + ) |
| 37 | + .borders(Borders::ALL) |
| 38 | + .border_style(Style::default().fg(Color::White).bg(Color::DarkGray)) |
| 39 | + .border_type(BorderType::Rounded) |
| 40 | + ); |
18 | 41 |
|
19 | | - terminal.draw(|f| { |
20 | | - let size = f.size(); |
21 | | - let loading_screen_paragraph = Paragraph::new(loading_screen.clone()) |
22 | | - .alignment(Alignment::Center) |
23 | | - .block( |
24 | | - Block::default() |
25 | | - .title(Span::styled("GitHub Assistant", Style::default().add_modifier(Modifier::BOLD))) |
26 | | - .borders(Borders::ALL).border_type(BorderType::Rounded), |
27 | | - ); |
28 | | - f.render_widget(loading_screen_paragraph, size); |
29 | | - })?; |
| 42 | + terminal.draw(|f| { |
| 43 | + let size = f.size(); |
| 44 | + f.render_widget(loading_screen_paragraph, size); |
| 45 | + })?; |
30 | 46 |
|
31 | | - Ok(()) |
| 47 | + Ok(()) |
32 | 48 | } |
0 commit comments