tweaks to ui

This commit is contained in:
Dhanji Prasanna
2025-10-02 15:03:23 +10:00
parent cd7f8d3fc7
commit 7ce1bfc8e2

View File

@@ -24,6 +24,8 @@ const TERMINAL_DIM_GREEN: Color = Color::Rgb(0, 128, 32); // Dimmed green for bo
const TERMINAL_BG: Color = Color::Rgb(0, 10, 0); // Very dark green background const TERMINAL_BG: Color = Color::Rgb(0, 10, 0); // Very dark green background
const TERMINAL_CYAN: Color = Color::Rgb(0, 255, 255); // Cyan for highlights const TERMINAL_CYAN: Color = Color::Rgb(0, 255, 255); // Cyan for highlights
const TERMINAL_RED: Color = Color::Rgb(255, 0, 0); // Red for errors const TERMINAL_RED: Color = Color::Rgb(255, 0, 0); // Red for errors
const TERMINAL_PALE_BLUE: Color = Color::Rgb(173, 216, 230); // Pale blue for READY status
const TERMINAL_DARK_AMBER: Color = Color::Rgb(204, 119, 34); // Dark amber for PROCESSING status
/// Message types for communication between threads /// Message types for communication between threads
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@@ -351,18 +353,61 @@ impl RetroTui {
let meter = format!("[{}{}]", "".repeat(filled), "".repeat(bar_width - filled)); let meter = format!("[{}{}]", "".repeat(filled), "".repeat(bar_width - filled));
let (_, model) = provider_info; let (_, model) = provider_info;
let status_text = format!(
" STATUS: {} | CONTEXT: {} {:.1}% ({}/{}) | MODEL: {} ",
status_line, meter, percentage, used, total, model
);
let status = Paragraph::new(status_text) // Determine status color based on status text
.style( let status_color = if status_line == "READY" {
TERMINAL_PALE_BLUE
} else if status_line == "PROCESSING" {
TERMINAL_DARK_AMBER
} else {
// Default to amber for other statuses
TERMINAL_AMBER
};
// Build the status line with different colored spans
let status_spans = vec![
Span::styled(
" STATUS: ",
Style::default() Style::default()
.fg(TERMINAL_AMBER) .fg(TERMINAL_AMBER)
.bg(TERMINAL_BG)
.add_modifier(Modifier::BOLD), .add_modifier(Modifier::BOLD),
) ),
Span::styled(
status_line,
Style::default()
.fg(status_color)
.add_modifier(Modifier::BOLD),
),
Span::styled(
" | CONTEXT: ",
Style::default()
.fg(TERMINAL_AMBER)
.add_modifier(Modifier::BOLD),
),
Span::styled(
format!("{} {:.1}% ({}/{})", meter, percentage, used, total),
Style::default()
.fg(TERMINAL_AMBER)
.add_modifier(Modifier::BOLD),
),
Span::styled(
" | ",
Style::default()
.fg(TERMINAL_AMBER)
.add_modifier(Modifier::BOLD),
),
Span::styled(
format!("{} ", model),
Style::default()
.fg(TERMINAL_AMBER)
.add_modifier(Modifier::BOLD),
),
];
let status_line = Line::from(status_spans);
let status = Paragraph::new(status_line)
.style(Style::default().bg(TERMINAL_BG))
.alignment(Alignment::Left); .alignment(Alignment::Left);
f.render_widget(status, area); f.render_widget(status, area);