Skip to content

Commit 4239696

Browse files
committed
added onscrollend polyfill
1 parent 158b8a6 commit 4239696

2 files changed

Lines changed: 92 additions & 0 deletions

File tree

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/* eslint-disable eslint-comments/no-unlimited-disable */
2+
/* eslint-disable */
3+
'use strict';
4+
(() => {
5+
function f(i, o, r, s = !1) {
6+
if (!(o in i) || typeof r != 'function') return !1;
7+
let t = i[o];
8+
return (
9+
(i[o] = function (...e) {
10+
return (
11+
s || t.apply(this, e), (t = t.bind(this)), r.apply(this, [t, ...e])
12+
);
13+
}),
14+
!0
15+
);
16+
}
17+
if (typeof window == 'undefined') throw 'Not in a browser.';
18+
var p = 'onscrollend' in window;
19+
if (!p) {
20+
let s = function (e, u, l) {
21+
if (u !== 'scrollend') {
22+
e.apply(this, [u, l]);
23+
return;
24+
}
25+
let c = this,
26+
n = i.get(c);
27+
if (!n) {
28+
let d;
29+
(n = {
30+
scrollFn: () => {
31+
clearTimeout(d),
32+
(d = setTimeout(() => {
33+
l();
34+
}, 100));
35+
},
36+
handlers: [l],
37+
}),
38+
e.apply(c, ['scroll', n.scrollFn, !1]),
39+
i.set(c, n);
40+
}
41+
},
42+
t = function (e, u, l) {
43+
if (u !== 'scrollend') {
44+
e.apply(this, [u, l]);
45+
return;
46+
}
47+
let c = this,
48+
n = i.get(c);
49+
if (n) {
50+
if (
51+
(typeof n.scrollFn == 'function' &&
52+
e.apply(this, ['scroll', n.scrollFn]),
53+
typeof l == 'undefined')
54+
)
55+
n.handlers = [];
56+
else {
57+
let d = n.handlers.indexOf(l);
58+
d > -1 && n.handlers.splice(d, 1);
59+
}
60+
n.handlers.length === 0 && i.delete(c);
61+
}
62+
};
63+
(a = s), (w = t);
64+
let i = new WeakMap(),
65+
o = null,
66+
r = null;
67+
f(window, 'addEventListener', s, !0),
68+
f(window, 'removeEventListener', t, !0),
69+
Object.defineProperty(window, 'onscrollend', {
70+
set: e => {
71+
(typeof e != 'function' || o) &&
72+
t.call(window, window.removeEventListener, 'scrollend', o),
73+
(o = e),
74+
e && s.call(window, window.addEventListener, 'scrollend', e);
75+
},
76+
get: () => o,
77+
}),
78+
f(document, 'addEventListener', s, !0),
79+
f(document, 'removeEventListener', t, !0),
80+
Object.defineProperty(document, 'onscrollend', {
81+
set: e => {
82+
(typeof e != 'function' || r) &&
83+
t.call(document, document.removeEventListener, 'scrollend', r),
84+
(r = e),
85+
e && s.call(document, document.addEventListener, 'scrollend', e);
86+
},
87+
get: () => r,
88+
});
89+
}
90+
var a, w;
91+
})();

src/screens/reader/components/WebViewReader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@ const WebViewReader: React.FC<WebViewReaderProps> = ({ onPress }) => {
255255
},
256256
})}
257257
</script>
258+
<script src="${assetsUriPrefix}/js/polyfill-onscrollend.js"></script>
258259
<script src="${assetsUriPrefix}/js/icons.js"></script>
259260
<script src="${assetsUriPrefix}/js/van.js"></script>
260261
<script src="${assetsUriPrefix}/js/text-vibe.js"></script>

0 commit comments

Comments
 (0)