use eframe::egui::{self, TextEdit};

use crate::tabs::teachers::{get_teachers, teacher_name};

use super::filtered_teachers;

pub fn set_teachers_filter() {
    std::thread::spawn(move || {
        let f = teacher_name().read();
        let f = &*f.to_uppercase();
        let tchrs = get_teachers()
            .read()
            .clone()
            .into_iter()
            .filter(|l| l.1.name.to_uppercase().contains(&f));
        *filtered_teachers().write() = tchrs.map(|t| t.1.clone()).collect();
        filtered_teachers()
            .write()
            .sort_by(|a, b| a.name.cmp(&b.name));
    });
}
pub fn filter_teacher_text(ui: &mut egui::Ui) {
    ui.label("Öğretmen(ler)i Seçin ");
    let text = ui
        .add(TextEdit::singleline(&mut *teacher_name().write()).hint_text("Öğretmenleri Filtrele"));
    text.request_focus();
    if text.changed() {
        set_teachers_filter()
    };
}
// pub fn select_teachers_ui(ui: &mut egui::Ui) {
//     ui.vertical(|ui| {
//         Frame::none()
//             .stroke(Stroke::new(1., Color32::BLACK))
//             .rounding(1.)
//             .inner_margin(10.0)
//             .outer_margin(10.0)
//             .show(ui, |ui| {
//                 ui.label("Öğretmen(ler)i Seçin ");
//                 if ui
//                     .add(
//                         TextEdit::singleline(&mut *teacher_name().write())
//                             .hint_text("Öğretmenleri Filtrele"),
//                     )
//                     .changed()
//                 {
//                     set_teachers_filter()
//                 };
//                 ui.add_space(5.);
//                 Flex::horizontal()
//                     .wrap(true)
//                     // .justify(egui_flex::FlexJustify::Center)
//                     .align_items(egui_flex::FlexAlign::Center)
//                     .show(ui, |flex| {
//                         let teachers = filtered_teachers().read();
//                         for teacher in &*teachers {
//                             let is_selected =
//                                 act_teachers().read().iter().any(|i| teacher.id == i.id);
//                             let _stroke = Stroke::new(
//                                 if is_selected { 1.0 } else { 0.5 },
//                                 if is_selected {
//                                     Color32::BLUE
//                                 } else {
//                                     Color32::GRAY
//                                 },
//                             );

//                             // let frame = egui::Frame::default()
//                             //     .stroke(stroke)
//                             //     .rounding(5.)
//                             //     .inner_margin(5.);
//                             flex.add_flex(
//                                 item(),
//                                 Flex::horizontal().align_items_content(Align2::CENTER_TOP),
//                                 |flex| {
//                                     // let sel_lec = act_lec();
//                                     if flex
//                                         .add_ui(item(), |ui| {
//                                             ui.add_sized(
//                                                 Vec2::new(30., 15.),
//                                                 Label::new(&teacher.name),
//                                             )
//                                         })
//                                         .inner
//                                         .on_hover_cursor(egui::CursorIcon::PointingHand)
//                                         .clicked()
//                                     {
//                                         select_teacher(teacher.clone(), is_selected);
//                                     };
//                                 },
//                             );
//                         }
//                     });
//             });
//     });
// }
// fn select_teacher(teacher: Teacher, del: bool) {
//     let teachers = act_teachers();
//     // let selected_class = selected_class().read().unwrap();
//     std::thread::spawn(move || {
//         // let class = class.clone();
//         let teachers: Arc<RwLock<Vec<Teacher>>> = Arc::clone(teachers);
//         if del {
//             teachers.write().retain(|t| &t.id != &teacher.id);
//         } else {
//             teachers.write().push(teacher.clone());
//         }
//     });
// }