use ratatui::Frame;
use ratatui::layout::Rect;
use ratatui::style::{Color, Style};
use ratatui::widgets::{Block, Clear, Paragraph, Wrap};
use super::popup::popup_area;
pub fn draw_checked_popup(
frame: &mut Frame,
checked_items: &[String],
title: &str,
item_type: &str,
popup_color: Color,
area: Rect,
percent_x: u16,
percent_y: u16,
) {
let popup_block = Block::bordered().title(title).style(Style::default().fg(popup_color));
let popup_rect = popup_area(area, percent_x, percent_y);
frame.render_widget(Clear, popup_rect);
let checked_text = if checked_items.is_empty() {
format!("No {} checked", item_type)
} else if checked_items.len() <= 8 {
let items: Vec<String> = checked_items.iter().map(|name| format!(" ☑ {}", name)).collect();
let item_type_display = if checked_items.len() == 1 { item_type.to_string() } else { format!("{}s", item_type) };
format!(
"Checked {} ({})\n\n{}\n\n\nPress ENTER to add | Press ESC to close",
item_type_display,
checked_items.len(),
items.join("\n")
)
} else {
let items_per_column = (checked_items.len() + 3) / 4;
let item_type_display = if checked_items.len() == 1 { item_type.to_string() } else { format!("{}s", item_type) };
let mut lines = vec![format!("Checked {} ({})\n", item_type_display, checked_items.len())];
for row in 0..items_per_column {
let mut line_parts = Vec::new();
if let Some(item) = checked_items.get(row) {
line_parts.push(format!(" ☑ {:<18}", item));
}
if let Some(item) = checked_items.get(row + items_per_column) {
line_parts.push(format!("☑ {:<18}", item));
}
if let Some(item) = checked_items.get(row + items_per_column * 2) {
line_parts.push(format!("☑ {:<18}", item));
}
if let Some(item) = checked_items.get(row + items_per_column * 3) {
line_parts.push(format!("☑ {}", item));
}
lines.push(line_parts.join(" "));
}
lines.push(String::new());
lines.push(String::new());
lines.push("Press ENTER to add | Press ESC to close".to_string());
lines.join("\n")
};
let popup_paragraph =
Paragraph::new(checked_text).block(popup_block).wrap(Wrap { trim: true }).style(Style::default().fg(Color::White));
frame.render_widget(popup_paragraph, popup_rect);
}