konnektoren_core/konnektoren_js/
event.rs1use wasm_bindgen::prelude::*;
2use web_sys::Window;
3
4pub struct EventHandler<'a> {
5 window: &'a Window,
6}
7
8impl<'a> EventHandler<'a> {
9 pub fn new(window: &'a Window) -> Self {
10 Self { window }
11 }
12
13 pub fn expose_send_event<F>(&self, on_event: F)
14 where
15 F: 'static + FnMut(JsValue),
16 {
17 let closure = Closure::wrap(Box::new(on_event) as Box<dyn FnMut(JsValue)>);
18 let konnektoren_obj =
19 js_sys::Reflect::get(self.window, &JsValue::from_str("konnektoren")).unwrap();
20 js_sys::Reflect::set(
21 &konnektoren_obj,
22 &JsValue::from_str("sendEvent"),
23 closure.as_ref().unchecked_ref(),
24 )
25 .unwrap();
26 closure.forget();
27 }
28}