Skip to content

Commit 5470e50

Browse files
Add addEventListener variant with options exposed (#25)
* Add addEventListener variant with options exposed * Add changelog entry
1 parent e0766c1 commit 5470e50

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Breaking changes:
88
- Migrate FFI to ES modules (#24 by @JordanMartinez)
99

1010
New features:
11+
- Add `addEventListenerWithOptions` to expose more options (#25 by @JordanMartinez)
1112

1213
Bugfixes:
1314

src/Web/Event/EventTarget.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ export function eventListener(fn) {
66
};
77
}
88

9+
export function addEventListenerWithOptions(type) {
10+
return function (listener) {
11+
return function (options) {
12+
return function (target) {
13+
return function () {
14+
return target.addEventListener(type, listener, options);
15+
};
16+
};
17+
};
18+
};
19+
}
20+
921
export function addEventListener(type) {
1022
return function (listener) {
1123
return function (useCapture) {

src/Web/Event/EventTarget.purs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module Web.Event.EventTarget
33
, EventListener
44
, eventListener
55
, addEventListener
6+
, addEventListenerWithOptions
67
, removeEventListener
78
, dispatchEvent
89
) where
@@ -29,6 +30,21 @@ foreign import eventListener
2930
. (Event -> Effect a)
3031
-> Effect EventListener
3132

33+
-- | Adds a listener to an event target.
34+
-- | - `capture` - whether the listener is added to the "capture" phase
35+
-- | - `once` - if true, indicates listener should be invokved at most once
36+
-- | before being automatically removed.
37+
-- | - `passive` - indicates the callback function will never call `preventDefault`
38+
foreign import addEventListenerWithOptions
39+
:: EventType
40+
-> EventListener
41+
-> { capture :: Boolean
42+
, once :: Boolean
43+
, passive :: Boolean
44+
}
45+
-> EventTarget
46+
-> Effect Unit
47+
3248
-- | Adds a listener to an event target. The boolean argument indicates whether
3349
-- | the listener should be added for the "capture" phase.
3450
foreign import addEventListener

0 commit comments

Comments
 (0)