use ratatui::{
layout::Rect,
style::{Color, Modifier, Style},
text::{Line, Span},
widgets::{Block, Borders, Paragraph},
Frame,
};
use crate::app::App;
pub fn draw_top_bar(f: &mut Frame, app: &App, area: Rect) {
let date_str = app.current_date.format(&app.config.date_format).to_string();
let mut spans = vec![
Span::styled(
format!("trackWork v{}", env!("CARGO_PKG_VERSION")),
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
),
Span::raw(" | "),
Span::styled(date_str, Style::default().fg(Color::Yellow)),
];
if let Ok(guard) = app.available_update.lock() {
if let Some(latest) = guard.as_ref() {
spans.push(Span::raw(" | "));
spans.push(Span::styled(
format!("⬆ v{} available", latest),
Style::default()
.fg(Color::Yellow)
.add_modifier(Modifier::BOLD),
));
}
}
let header = Paragraph::new(Line::from(spans)).block(Block::default().borders(Borders::ALL));
f.render_widget(header, area);
}