uptime-kuma-dashboard/src/ui/components/footer.rs

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);
}