use crate::app::AppState;
use crate::ui::style;
use ratatui::Frame;
use ratatui::layout::Rect;
use ratatui::widgets::{Clear, List, ListItem};
use super::utils;
pub fn render(frame: &mut Frame, area: Rect, state: &AppState) {
let max_idx = state.available_themes.len().saturating_sub(1);
let selected = state.theme_picker_selected.min(max_idx);
let items: Vec<ListItem> = state
.available_themes
.iter()
.enumerate()
.map(|(i, name)| {
let item_style = if i == selected {
style::selection(&state.theme)
} else {
style::body_style(&state.theme)
};
ListItem::new(name.clone()).style(item_style)
})
.collect();
let title = format!(
"Themes [{} / {}]",
selected.saturating_add(1),
state.available_themes.len().max(1)
);
let popup = utils::center_rect(40, 60, area);
frame.render_widget(Clear, popup);
let list = List::new(items)
.style(style::body_style(&state.theme))
.block(style::pane_block(&state.theme, title, true));
frame.render_widget(list, popup);
}