use crate::reply::roles::RoleRow;
use crate::ui::{Edit, Model, theme};
pub const OFFERS: &str = "it offers:";
pub fn mark(ui: &mut egui::Ui, model: &Model, row: &RoleRow) {
if let Some(said) = model.unoffered(row) {
ui.colored_label(theme::accent(theme::State::Error), said);
}
}
pub fn pick(ui: &mut egui::Ui, model: &mut Model, edit: &Edit) {
let offered = model.offered_by(&edit.provider);
if offered.is_empty() {
return;
}
let mut picked = None;
ui.horizontal_wrapped(|ui| {
ui.label(OFFERS);
for id in offered {
if ui.selectable_label(edit.model.trim() == id, &id).clicked() {
picked = Some(id);
}
}
});
if let Some(id) = picked
&& let Some(draft) = model.draft_assignment()
{
draft.model = id;
}
}
#[cfg(test)]
mod tests;