web-ui-pack
Version:
Web package with UI elements
18 lines (17 loc) • 541 B
JavaScript
export default function onEvent(element, type, listener, options) {
if (typeof options !== "boolean") {
if (options == null) {
options = { passive: true };
}
else if (options.passive == null) {
options.passive = true;
}
}
const remove = () => element.removeEventListener(type, wrapper, options);
function wrapper(e) {
listener.call(element, e);
options?.once && remove();
}
element.addEventListener(type, wrapper, options);
return remove;
}