use ratatui::{
Frame,
layout::Rect,
style::{Color, Style},
text::{Line, Span},
widgets::{Block, Borders, List, ListItem, ListState},
};
use crate::tui::app::state::App;
pub fn render_suggestions(f: &mut Frame, app: &App, area: Rect) {
let items: Vec<ListItem<'static>> = app
.state
.slash_suggestions
.iter()
.enumerate()
.map(|(idx, cmd)| {
let prefix = if idx == app.state.selected_slash_suggestion {
"▶ "
} else {
" "
};
ListItem::new(Line::from(vec![
Span::raw(prefix),
Span::styled(cmd.clone(), Style::default().fg(Color::Cyan).bold()),
]))
})
.collect();
let mut list_state = ListState::default();
if !app.state.slash_suggestions.is_empty() {
list_state.select(Some(app.state.selected_slash_suggestion));
}
let list = List::new(items)
.block(Block::default().borders(Borders::ALL).title(" Commands "))
.highlight_style(Style::default().bg(Color::DarkGray).fg(Color::Cyan).bold());
f.render_stateful_widget(list, area, &mut list_state);
}