use roost_ui::events::OnEvent;
use roost_ui::{Context, Component};
use roost_ui::layouts::Column;
use crate::interactions;
use crate::utils::Callback;
use crate::components::list_item::ListItem;
use crate::components::list_item::ListItemInfoLeft;
#[derive(Debug, Component)]
pub struct RadioSelector(Column, pub Vec<interactions::Selectable>);
impl OnEvent for RadioSelector {}
impl RadioSelector {
pub fn new(ctx: &mut Context, index: usize, items: Vec<(&str, &str, Callback)>) -> Self {
let group_id = uuid::Uuid::new_v4();
let selectables = items.into_iter().enumerate().map(|(i, (t, s, c))| {
let selected = ListItem::new(ctx, None, ListItemInfoLeft::new(t, s, None, None), None, Some("radio_filled"), None, |_| {});
let default = ListItem::new(ctx, None, ListItemInfoLeft::new(t, s, None, None), None, Some("radio"), None, |_| {});
interactions::Selectable::new(default, selected, i == index, c, group_id)
}).collect::<Vec<_>>();
RadioSelector(Column::center(0.0), selectables)
}
}