use ratatui::style::{Modifier, Style}; use ratatui::text::{Line, Span}; use ratatui::widgets::{Block, Paragraph}; use ratatui::Frame; use crate::view::theme::Theme; pub fn render( frame: &mut Frame, area: ratatui::layout::Rect, block: Block<'static>, state: &crate::app::state::rest::AppStateRest, ) { let block = block .title(Span::styled( " Settings ", Style::default() .fg(Theme::PRIMARY) .add_modifier(Modifier::BOLD), )) .border_style(Style::default().fg(Theme::PRIMARY)); let lines = vec![ Line::from(Span::styled( format!(" Provider: {}", state.settings.provider), Style::default().fg(Theme::TEXT), )), Line::from(Span::styled( format!(" Model: {}", state.settings.model), Style::default().fg(Theme::TEXT), )), Line::from(Span::styled( format!( " Max tokens: {}", state .settings .max_tokens .map_or_else(|| "auto".to_string(), |v| v.to_string()) ), Style::default().fg(Theme::TEXT), )), Line::from(Span::styled( format!( " Temperature: {}", state .settings .temperature .map_or_else(|| "auto".to_string(), |v| format!("{v:.1}")) ), Style::default().fg(Theme::TEXT), )), Line::from(Span::styled( format!(" Internet: {:?}", state.settings.internet_mode), Style::default().fg(Theme::TEXT), )), Line::from(Span::styled( format!(" Review: {}", state.settings.flags.review_enabled), Style::default().fg(Theme::TEXT), )), ]; let paragraph = Paragraph::new(lines).block(block); frame.render_widget(paragraph, area); }