1open Wonka_types;
2open Wonka_source_fromListener;
3
4let fromDomEvent = (element, event) =>
5 curry(sink => {
6 let addEventListener: (Dom.element, string, Dom.event => unit) => unit = [%raw
7 {|
8 function (element, event, handler) {
9 element.addEventListener(event, handler);
10 }
11 |}
12 ];
13
14 let removeEventListener: (Dom.element, string, Dom.event => unit) => unit = [%raw
15 {|
16 function (element, event, handler) {
17 element.removeEventListener(event, handler);
18 }
19 |}
20 ];
21
22 fromListener(
23 handler => addEventListener(element, event, handler),
24 handler => removeEventListener(element, event, handler),
25 sink,
26 );
27 });