UNPKG

1.33 kBJavaScriptView Raw
1import getWindow from "../dom-utils/getWindow.js"; // eslint-disable-next-line import/no-unused-modules
2
3var passive = {
4 passive: true
5};
6
7function effect(_ref) {
8 var state = _ref.state,
9 instance = _ref.instance,
10 options = _ref.options;
11 var _options$scroll = options.scroll,
12 scroll = _options$scroll === void 0 ? true : _options$scroll,
13 _options$resize = options.resize,
14 resize = _options$resize === void 0 ? true : _options$resize;
15 var window = getWindow(state.elements.popper);
16 var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
17
18 if (scroll) {
19 scrollParents.forEach(function (scrollParent) {
20 scrollParent.addEventListener('scroll', instance.update, passive);
21 });
22 }
23
24 if (resize) {
25 window.addEventListener('resize', instance.update, passive);
26 }
27
28 return function () {
29 if (scroll) {
30 scrollParents.forEach(function (scrollParent) {
31 scrollParent.removeEventListener('scroll', instance.update, passive);
32 });
33 }
34
35 if (resize) {
36 window.removeEventListener('resize', instance.update, passive);
37 }
38 };
39} // eslint-disable-next-line import/no-unused-modules
40
41
42export default {
43 name: 'eventListeners',
44 enabled: true,
45 phase: 'write',
46 fn: function fn() {},
47 effect: effect,
48 data: {}
49};
\No newline at end of file