use ratatui::style::Color;
use crate::app::App;
pub struct ThemeColors {
pub primary: Color,
pub secondary: Color,
pub accent: Color,
pub text: Color,
pub text_dim: Color,
pub background: Color,
pub border: Color,
pub success: Color,
pub warning: Color,
pub error: Color,
pub highlight_bg: Color,
}
pub fn get_theme_colors(app: &App) -> ThemeColors {
let scheme = app
.settings_state
.config
.as_ref()
.map(|c| &c.color_scheme)
.unwrap_or(&fido_types::ColorScheme::Default);
match scheme {
fido_types::ColorScheme::Default => ThemeColors {
primary: Color::Rgb(0, 255, 0), secondary: Color::Rgb(0, 200, 0), accent: Color::Rgb(0, 255, 100), text: Color::Rgb(0, 255, 0), text_dim: Color::Rgb(0, 150, 0), background: Color::Black,
border: Color::Rgb(0, 200, 0),
success: Color::Rgb(0, 255, 0),
warning: Color::Rgb(255, 255, 0),
error: Color::Rgb(255, 0, 0),
highlight_bg: Color::Rgb(0, 50, 0), },
fido_types::ColorScheme::Dark => ThemeColors {
primary: Color::Rgb(100, 200, 255), secondary: Color::Rgb(150, 150, 255), accent: Color::Rgb(255, 100, 200), text: Color::Rgb(220, 220, 220), text_dim: Color::Rgb(120, 120, 120), background: Color::Rgb(20, 20, 25), border: Color::Rgb(60, 60, 70), success: Color::Rgb(100, 255, 150), warning: Color::Rgb(255, 200, 100), error: Color::Rgb(255, 100, 100), highlight_bg: Color::Rgb(40, 40, 50), },
fido_types::ColorScheme::Light => ThemeColors {
primary: Color::Rgb(0, 100, 200), secondary: Color::Rgb(100, 50, 200), accent: Color::Rgb(200, 0, 100), text: Color::Rgb(30, 30, 30), text_dim: Color::Rgb(100, 100, 100), background: Color::Rgb(250, 250, 250), border: Color::Rgb(180, 180, 180), success: Color::Rgb(0, 150, 50), warning: Color::Rgb(200, 150, 0), error: Color::Rgb(200, 0, 0), highlight_bg: Color::Rgb(230, 240, 255), },
fido_types::ColorScheme::Solarized => ThemeColors {
primary: Color::Rgb(38, 139, 210), secondary: Color::Rgb(42, 161, 152), accent: Color::Rgb(211, 54, 130), text: Color::Rgb(147, 161, 161), text_dim: Color::Rgb(101, 123, 131), background: Color::Rgb(0, 43, 54), border: Color::Rgb(7, 54, 66), success: Color::Rgb(133, 153, 0), warning: Color::Rgb(181, 137, 0), error: Color::Rgb(220, 50, 47), highlight_bg: Color::Rgb(7, 54, 66), },
}
}