a2ui_base/components/
checkbox.rs1use crate::event::{EventResult, InputEvent, InputKey};
4use crate::model::component_context::ComponentContext;
5use crate::protocol::common_types::DynamicBoolean;
6
7pub fn handle_event(ctx: &ComponentContext, event: &InputEvent) -> Option<EventResult> {
9 let InputEvent::KeyPress { key } = event;
10 if !matches!(key, InputKey::Enter | InputKey::Space) {
11 return None;
12 }
13
14 let comp_model = ctx.components.get(&ctx.component_id)?;
15
16 let value = comp_model.get_property::<DynamicBoolean>("value")?;
18 if let DynamicBoolean::Binding(binding) = value {
19 return Some(EventResult::Toggle { path: binding.path });
20 }
21 None
22}