48 lines
1.2 KiB
Rust
48 lines
1.2 KiB
Rust
use ratatui::{
|
|
Frame,
|
|
layout::{Alignment, Rect},
|
|
style::{Color, Modifier, Style},
|
|
text::{Line, Span},
|
|
widgets::{Block, Borders, Paragraph},
|
|
};
|
|
|
|
use crate::i18n::t;
|
|
use chrono::Local;
|
|
|
|
pub fn render_footer(
|
|
frame: &mut Frame,
|
|
area: Rect,
|
|
seconds_until_update: u64
|
|
) {
|
|
let now = Local::now();
|
|
let datatime_str = now.format("%Y-%m-%d %H:%M:%S").to_string();
|
|
let countdown_str = format!("↻ {}s", seconds_until_update);
|
|
|
|
let text = Line::from(vec![
|
|
Span::styled(
|
|
datatime_str,
|
|
Style::default()
|
|
.fg(Color::Gray)
|
|
.add_modifier(Modifier::BOLD),
|
|
),
|
|
Span::raw(" | "),
|
|
Span::styled(
|
|
countdown_str,
|
|
Style::default()
|
|
.fg(Color::Yellow)
|
|
.add_modifier(Modifier::BOLD),
|
|
),
|
|
Span::raw(" | "),
|
|
Span::styled(t("key-to-exit"), Style::default().fg(Color::Gray)),
|
|
]);
|
|
|
|
let footer = Paragraph::new(text)
|
|
.block(
|
|
Block::default()
|
|
.borders(Borders::ALL)
|
|
.border_style(Style::default().fg(Color::Blue)),
|
|
)
|
|
.alignment(Alignment::Center);
|
|
|
|
frame.render_widget(footer, area);
|
|
}
|