@tamagui/remove-scroll 2.0.0-rc.4 → 2.0.0-rc.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/RemoveScroll.cjs +16 -11
- package/dist/cjs/RemoveScroll.native.js +15 -13
- package/dist/cjs/RemoveScroll.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/useDisableScroll.cjs +88 -43
- package/dist/cjs/useDisableScroll.native.js +88 -45
- package/dist/cjs/useDisableScroll.native.js.map +1 -1
- package/dist/esm/RemoveScroll.mjs +4 -1
- package/dist/esm/RemoveScroll.mjs.map +1 -1
- package/dist/esm/RemoveScroll.native.js +3 -3
- package/dist/esm/RemoveScroll.native.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/useDisableScroll.mjs +76 -33
- package/dist/esm/useDisableScroll.mjs.map +1 -1
- package/dist/esm/useDisableScroll.native.js +74 -33
- package/dist/esm/useDisableScroll.native.js.map +1 -1
- package/dist/jsx/RemoveScroll.mjs +4 -1
- package/dist/jsx/RemoveScroll.mjs.map +1 -1
- package/dist/jsx/RemoveScroll.native.js +15 -13
- package/dist/jsx/RemoveScroll.native.js.map +1 -1
- package/dist/jsx/index.js +1 -1
- package/dist/jsx/index.js.map +1 -6
- package/dist/jsx/index.native.js +7 -5
- package/dist/jsx/useDisableScroll.mjs +76 -33
- package/dist/jsx/useDisableScroll.mjs.map +1 -1
- package/dist/jsx/useDisableScroll.native.js +88 -45
- package/dist/jsx/useDisableScroll.native.js.map +1 -1
- package/package.json +5 -8
- package/src/useDisableScroll.ts +3 -3
- package/types/RemoveScroll.d.ts.map +2 -2
- package/types/RemoveScroll.native.d.ts.map +2 -2
- package/types/index.d.ts.map +2 -2
- package/types/useDisableScroll.d.ts.map +3 -3
- package/dist/cjs/RemoveScroll.js +0 -22
- package/dist/cjs/RemoveScroll.js.map +0 -6
- package/dist/cjs/index.js +0 -15
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/useDisableScroll.js +0 -57
- package/dist/cjs/useDisableScroll.js.map +0 -6
- package/dist/esm/RemoveScroll.js +0 -6
- package/dist/esm/RemoveScroll.js.map +0 -6
- package/dist/esm/useDisableScroll.js +0 -41
- package/dist/esm/useDisableScroll.js.map +0 -6
- package/dist/jsx/RemoveScroll.js +0 -6
- package/dist/jsx/RemoveScroll.js.map +0 -6
- package/dist/jsx/useDisableScroll.js +0 -41
- package/dist/jsx/useDisableScroll.js.map +0 -6
|
@@ -1,45 +1,88 @@
|
|
|
1
1
|
import { useEffect, useRef } from "react";
|
|
2
|
-
const canUseDOM = () => typeof window
|
|
3
|
-
let refCount = 0
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
const canUseDOM = () => typeof window !== "undefined" && !!window.document && !!window.document.createElement;
|
|
3
|
+
let refCount = 0;
|
|
4
|
+
let savedScrollY = 0;
|
|
5
|
+
let previousStyles = null;
|
|
6
6
|
function isIOSSafari() {
|
|
7
|
-
if (typeof navigator
|
|
8
|
-
const ua = navigator.userAgent
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
if (typeof navigator === "undefined") return false;
|
|
8
|
+
const ua = navigator.userAgent;
|
|
9
|
+
const isIOS = /iPad|iPhone|iPod/.test(ua) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
|
|
10
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(ua);
|
|
11
11
|
return isIOS && isSafari;
|
|
12
12
|
}
|
|
13
13
|
const useDisableBodyScroll = enabled => {
|
|
14
|
-
const wasEnabled = useRef(
|
|
14
|
+
const wasEnabled = useRef(false);
|
|
15
15
|
useEffect(() => {
|
|
16
|
-
if (canUseDOM()) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
if (!canUseDOM()) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (enabled && !wasEnabled.current) {
|
|
20
|
+
wasEnabled.current = true;
|
|
21
|
+
if (++refCount === 1) {
|
|
22
|
+
const html = document.documentElement;
|
|
23
|
+
const body = document.body;
|
|
24
|
+
savedScrollY = window.scrollY;
|
|
25
|
+
previousStyles = {
|
|
26
|
+
htmlOverflow: html.style.overflow,
|
|
27
|
+
htmlScrollbarGutter: html.style.scrollbarGutter,
|
|
28
|
+
bodyPosition: body.style.position,
|
|
29
|
+
bodyTop: body.style.top,
|
|
30
|
+
bodyWidth: body.style.width,
|
|
31
|
+
bodyOverflow: body.style.overflow,
|
|
32
|
+
bodyOverscrollBehavior: body.style.overscrollBehavior
|
|
33
|
+
};
|
|
34
|
+
html.style.scrollbarGutter = "stable";
|
|
35
|
+
html.style.overflow = "hidden";
|
|
36
|
+
body.style.overscrollBehavior = "none";
|
|
37
|
+
if (isIOSSafari()) {
|
|
38
|
+
body.style.position = "fixed";
|
|
39
|
+
body.style.top = `-${savedScrollY}px`;
|
|
40
|
+
body.style.width = "100%";
|
|
41
|
+
body.style.overflow = "hidden";
|
|
30
42
|
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
}
|
|
44
|
+
} else if (!enabled && wasEnabled.current) {
|
|
45
|
+
wasEnabled.current = false;
|
|
46
|
+
if (--refCount === 0 && previousStyles) {
|
|
47
|
+
const html = document.documentElement;
|
|
48
|
+
const body = document.body;
|
|
49
|
+
html.style.overflow = previousStyles.htmlOverflow;
|
|
50
|
+
html.style.scrollbarGutter = previousStyles.htmlScrollbarGutter;
|
|
51
|
+
body.style.position = previousStyles.bodyPosition;
|
|
52
|
+
body.style.top = previousStyles.bodyTop;
|
|
53
|
+
body.style.width = previousStyles.bodyWidth;
|
|
54
|
+
body.style.overflow = previousStyles.bodyOverflow;
|
|
55
|
+
body.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior;
|
|
56
|
+
if (savedScrollY > 0) {
|
|
57
|
+
window.scrollTo(0, savedScrollY);
|
|
58
|
+
}
|
|
59
|
+
previousStyles = null;
|
|
60
|
+
savedScrollY = 0;
|
|
35
61
|
}
|
|
36
62
|
}
|
|
37
|
-
}, [enabled])
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
63
|
+
}, [enabled]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
return () => {
|
|
66
|
+
if (wasEnabled.current) {
|
|
67
|
+
wasEnabled.current = false;
|
|
68
|
+
if (--refCount === 0 && previousStyles) {
|
|
69
|
+
const html = document.documentElement;
|
|
70
|
+
const body = document.body;
|
|
71
|
+
html.style.overflow = previousStyles.htmlOverflow;
|
|
72
|
+
html.style.scrollbarGutter = previousStyles.htmlScrollbarGutter;
|
|
73
|
+
body.style.position = previousStyles.bodyPosition;
|
|
74
|
+
body.style.top = previousStyles.bodyTop;
|
|
75
|
+
body.style.width = previousStyles.bodyWidth;
|
|
76
|
+
body.style.overflow = previousStyles.bodyOverflow;
|
|
77
|
+
body.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior;
|
|
78
|
+
if (savedScrollY > 0) {
|
|
79
|
+
window.scrollTo(0, savedScrollY);
|
|
80
|
+
}
|
|
81
|
+
previousStyles = null;
|
|
82
|
+
savedScrollY = 0;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
43
86
|
}, []);
|
|
44
87
|
};
|
|
45
88
|
export { useDisableBodyScroll };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","canUseDOM","window","document","createElement","refCount","savedScrollY","previousStyles","isIOSSafari","navigator","ua","userAgent","isIOS","test","platform","maxTouchPoints","isSafari","useDisableBodyScroll","enabled","wasEnabled","current","html","documentElement","body","scrollY","htmlOverflow","style","overflow","htmlScrollbarGutter","scrollbarGutter","bodyPosition","position","bodyTop","top","bodyWidth","width","bodyOverflow","bodyOverscrollBehavior","overscrollBehavior","scrollTo"],"sources":["../../src/useDisableScroll.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAElC,MAAMC,SAAA,GAAYA,CAAA,KAChB,OAAOC,MAAA,
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","canUseDOM","window","document","createElement","refCount","savedScrollY","previousStyles","isIOSSafari","navigator","ua","userAgent","isIOS","test","platform","maxTouchPoints","isSafari","useDisableBodyScroll","enabled","wasEnabled","current","html","documentElement","body","scrollY","htmlOverflow","style","overflow","htmlScrollbarGutter","scrollbarGutter","bodyPosition","position","bodyTop","top","bodyWidth","width","bodyOverflow","bodyOverscrollBehavior","overscrollBehavior","scrollTo"],"sources":["../../src/useDisableScroll.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,47 +1,88 @@
|
|
|
1
1
|
import { useEffect, useRef } from "react";
|
|
2
2
|
var canUseDOM = function () {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
return typeof window !== "undefined" && !!window.document && !!window.document.createElement;
|
|
4
|
+
};
|
|
5
|
+
var refCount = 0;
|
|
6
|
+
var savedScrollY = 0;
|
|
7
|
+
var previousStyles = null;
|
|
8
8
|
function isIOSSafari() {
|
|
9
|
-
if (typeof navigator
|
|
10
|
-
var ua = navigator.userAgent
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
if (typeof navigator === "undefined") return false;
|
|
10
|
+
var ua = navigator.userAgent;
|
|
11
|
+
var isIOS = /iPad|iPhone|iPod/.test(ua) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
|
|
12
|
+
var isSafari = /^((?!chrome|android).)*safari/i.test(ua);
|
|
13
13
|
return isIOS && isSafari;
|
|
14
14
|
}
|
|
15
15
|
var useDisableBodyScroll = function (enabled) {
|
|
16
|
-
var wasEnabled = useRef(
|
|
16
|
+
var wasEnabled = useRef(false);
|
|
17
17
|
useEffect(function () {
|
|
18
|
-
if (canUseDOM()) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
18
|
+
if (!canUseDOM()) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (enabled && !wasEnabled.current) {
|
|
22
|
+
wasEnabled.current = true;
|
|
23
|
+
if (++refCount === 1) {
|
|
24
|
+
var html = document.documentElement;
|
|
25
|
+
var body = document.body;
|
|
26
|
+
savedScrollY = window.scrollY;
|
|
27
|
+
previousStyles = {
|
|
28
|
+
htmlOverflow: html.style.overflow,
|
|
29
|
+
htmlScrollbarGutter: html.style.scrollbarGutter,
|
|
30
|
+
bodyPosition: body.style.position,
|
|
31
|
+
bodyTop: body.style.top,
|
|
32
|
+
bodyWidth: body.style.width,
|
|
33
|
+
bodyOverflow: body.style.overflow,
|
|
34
|
+
bodyOverscrollBehavior: body.style.overscrollBehavior
|
|
35
|
+
};
|
|
36
|
+
html.style.scrollbarGutter = "stable";
|
|
37
|
+
html.style.overflow = "hidden";
|
|
38
|
+
body.style.overscrollBehavior = "none";
|
|
39
|
+
if (isIOSSafari()) {
|
|
40
|
+
body.style.position = "fixed";
|
|
41
|
+
body.style.top = `-${savedScrollY}px`;
|
|
42
|
+
body.style.width = "100%";
|
|
43
|
+
body.style.overflow = "hidden";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
} else if (!enabled && wasEnabled.current) {
|
|
47
|
+
wasEnabled.current = false;
|
|
48
|
+
if (--refCount === 0 && previousStyles) {
|
|
49
|
+
var html1 = document.documentElement;
|
|
50
|
+
var body1 = document.body;
|
|
51
|
+
html1.style.overflow = previousStyles.htmlOverflow;
|
|
52
|
+
html1.style.scrollbarGutter = previousStyles.htmlScrollbarGutter;
|
|
53
|
+
body1.style.position = previousStyles.bodyPosition;
|
|
54
|
+
body1.style.top = previousStyles.bodyTop;
|
|
55
|
+
body1.style.width = previousStyles.bodyWidth;
|
|
56
|
+
body1.style.overflow = previousStyles.bodyOverflow;
|
|
57
|
+
body1.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior;
|
|
58
|
+
if (savedScrollY > 0) {
|
|
59
|
+
window.scrollTo(0, savedScrollY);
|
|
32
60
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
body1 = document.body;
|
|
36
|
-
html1.style.overflow = previousStyles.htmlOverflow, html1.style.scrollbarGutter = previousStyles.htmlScrollbarGutter, body1.style.position = previousStyles.bodyPosition, body1.style.top = previousStyles.bodyTop, body1.style.width = previousStyles.bodyWidth, body1.style.overflow = previousStyles.bodyOverflow, body1.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior, isIOSSafari() && savedScrollY > 0 && window.scrollTo(0, savedScrollY), previousStyles = null, savedScrollY = 0;
|
|
61
|
+
previousStyles = null;
|
|
62
|
+
savedScrollY = 0;
|
|
37
63
|
}
|
|
38
64
|
}
|
|
39
|
-
}, [enabled])
|
|
65
|
+
}, [enabled]);
|
|
66
|
+
useEffect(function () {
|
|
40
67
|
return function () {
|
|
41
|
-
if (wasEnabled.current
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
68
|
+
if (wasEnabled.current) {
|
|
69
|
+
wasEnabled.current = false;
|
|
70
|
+
if (--refCount === 0 && previousStyles) {
|
|
71
|
+
var html = document.documentElement;
|
|
72
|
+
var body = document.body;
|
|
73
|
+
html.style.overflow = previousStyles.htmlOverflow;
|
|
74
|
+
html.style.scrollbarGutter = previousStyles.htmlScrollbarGutter;
|
|
75
|
+
body.style.position = previousStyles.bodyPosition;
|
|
76
|
+
body.style.top = previousStyles.bodyTop;
|
|
77
|
+
body.style.width = previousStyles.bodyWidth;
|
|
78
|
+
body.style.overflow = previousStyles.bodyOverflow;
|
|
79
|
+
body.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior;
|
|
80
|
+
if (savedScrollY > 0) {
|
|
81
|
+
window.scrollTo(0, savedScrollY);
|
|
82
|
+
}
|
|
83
|
+
previousStyles = null;
|
|
84
|
+
savedScrollY = 0;
|
|
85
|
+
}
|
|
45
86
|
}
|
|
46
87
|
};
|
|
47
88
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","canUseDOM","window","document","createElement","refCount","savedScrollY","previousStyles","isIOSSafari","navigator","ua","userAgent","isIOS","test","platform","maxTouchPoints","isSafari","useDisableBodyScroll","enabled","wasEnabled","current","html","documentElement","body","scrollY","htmlOverflow","style","overflow","htmlScrollbarGutter","scrollbarGutter","bodyPosition","position","bodyTop","top","bodyWidth","width","bodyOverflow","bodyOverscrollBehavior","overscrollBehavior","html1","body1","scrollTo"],"sources":["../../src/useDisableScroll.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAElC,IAAAC,SAAM,YAAAA,CAAA,EACJ;
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","canUseDOM","window","document","createElement","refCount","savedScrollY","previousStyles","isIOSSafari","navigator","ua","userAgent","isIOS","test","platform","maxTouchPoints","isSafari","useDisableBodyScroll","enabled","wasEnabled","current","html","documentElement","body","scrollY","htmlOverflow","style","overflow","htmlScrollbarGutter","scrollbarGutter","bodyPosition","position","bodyTop","top","bodyWidth","width","bodyOverflow","bodyOverscrollBehavior","overscrollBehavior","html1","body1","scrollTo"],"sources":["../../src/useDisableScroll.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { useDisableBodyScroll } from "./useDisableScroll.mjs";
|
|
2
|
-
const RemoveScroll = props =>
|
|
2
|
+
const RemoveScroll = props => {
|
|
3
|
+
useDisableBodyScroll(Boolean(props.enabled));
|
|
4
|
+
return props.children;
|
|
5
|
+
};
|
|
3
6
|
export { RemoveScroll };
|
|
4
7
|
//# sourceMappingURL=RemoveScroll.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDisableBodyScroll","RemoveScroll","props","enabled","children"],"sources":["../../src/RemoveScroll.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,oBAAA,QAA4B;AAO9B,MAAMC,YAAA,GAAgBC,KAAA,
|
|
1
|
+
{"version":3,"names":["useDisableBodyScroll","RemoveScroll","props","Boolean","enabled","children"],"sources":["../../src/RemoveScroll.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,oBAAA,QAA4B;AAO9B,MAAMC,YAAA,GAAgBC,KAAA,IAAwC;EACnEF,oBAAA,CAAqBG,OAAA,CAAQD,KAAA,CAAME,OAAO,CAAC;EAE3C,OAAOF,KAAA,CAAMG,QAAA;AACf","ignoreList":[]}
|
|
@@ -5,20 +5,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
16
|
get: () => from[key],
|
|
16
17
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value:
|
|
23
|
+
value: true
|
|
22
24
|
}), mod);
|
|
23
25
|
var RemoveScroll_native_exports = {};
|
|
24
26
|
__export(RemoveScroll_native_exports, {
|
|
@@ -27,7 +29,7 @@ __export(RemoveScroll_native_exports, {
|
|
|
27
29
|
});
|
|
28
30
|
module.exports = __toCommonJS(RemoveScroll_native_exports);
|
|
29
31
|
var RemoveScroll = function (props) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
return props.children;
|
|
33
|
+
};
|
|
34
|
+
var getAllowedScrollableNode = function () {};
|
|
33
35
|
//# sourceMappingURL=RemoveScroll.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RemoveScroll_native_exports","__export","RemoveScroll","getAllowedScrollableNode","module","exports","__toCommonJS","props","children"],"sources":["../../src/RemoveScroll.native.tsx"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["RemoveScroll_native_exports","__export","RemoveScroll","getAllowedScrollableNode","module","exports","__toCommonJS","props","children"],"sources":["../../src/RemoveScroll.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,2BAAA;AAAAC,QAAA,CAAAD,2BAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,2BAAA;AAAO,IAAIE,YAAA,GAAe,SAAAA,CAASK,KAAA,EAAO;EACtC,OAAOA,KAAA,CAAMC,QAAA;AACjB;AACO,IAAIL,wBAAA,GAA2B,SAAAA,CAAA,EAAW,CAAC","ignoreList":[]}
|
package/dist/jsx/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./RemoveScroll";
|
|
1
|
+
export * from "./RemoveScroll.mjs";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/jsx/index.js.map
CHANGED
package/dist/jsx/index.native.js
CHANGED
|
@@ -5,15 +5,17 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __copyProps = (to, from, except, desc) => {
|
|
8
|
-
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
9
10
|
get: () => from[key],
|
|
10
11
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
11
12
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
17
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
16
|
-
value:
|
|
18
|
+
value: true
|
|
17
19
|
}), mod);
|
|
18
20
|
var index_exports = {};
|
|
19
21
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -1,45 +1,88 @@
|
|
|
1
1
|
import { useEffect, useRef } from "react";
|
|
2
|
-
const canUseDOM = () => typeof window
|
|
3
|
-
let refCount = 0
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
const canUseDOM = () => typeof window !== "undefined" && !!window.document && !!window.document.createElement;
|
|
3
|
+
let refCount = 0;
|
|
4
|
+
let savedScrollY = 0;
|
|
5
|
+
let previousStyles = null;
|
|
6
6
|
function isIOSSafari() {
|
|
7
|
-
if (typeof navigator
|
|
8
|
-
const ua = navigator.userAgent
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
if (typeof navigator === "undefined") return false;
|
|
8
|
+
const ua = navigator.userAgent;
|
|
9
|
+
const isIOS = /iPad|iPhone|iPod/.test(ua) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
|
|
10
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(ua);
|
|
11
11
|
return isIOS && isSafari;
|
|
12
12
|
}
|
|
13
13
|
const useDisableBodyScroll = enabled => {
|
|
14
|
-
const wasEnabled = useRef(
|
|
14
|
+
const wasEnabled = useRef(false);
|
|
15
15
|
useEffect(() => {
|
|
16
|
-
if (canUseDOM()) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
if (!canUseDOM()) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (enabled && !wasEnabled.current) {
|
|
20
|
+
wasEnabled.current = true;
|
|
21
|
+
if (++refCount === 1) {
|
|
22
|
+
const html = document.documentElement;
|
|
23
|
+
const body = document.body;
|
|
24
|
+
savedScrollY = window.scrollY;
|
|
25
|
+
previousStyles = {
|
|
26
|
+
htmlOverflow: html.style.overflow,
|
|
27
|
+
htmlScrollbarGutter: html.style.scrollbarGutter,
|
|
28
|
+
bodyPosition: body.style.position,
|
|
29
|
+
bodyTop: body.style.top,
|
|
30
|
+
bodyWidth: body.style.width,
|
|
31
|
+
bodyOverflow: body.style.overflow,
|
|
32
|
+
bodyOverscrollBehavior: body.style.overscrollBehavior
|
|
33
|
+
};
|
|
34
|
+
html.style.scrollbarGutter = "stable";
|
|
35
|
+
html.style.overflow = "hidden";
|
|
36
|
+
body.style.overscrollBehavior = "none";
|
|
37
|
+
if (isIOSSafari()) {
|
|
38
|
+
body.style.position = "fixed";
|
|
39
|
+
body.style.top = `-${savedScrollY}px`;
|
|
40
|
+
body.style.width = "100%";
|
|
41
|
+
body.style.overflow = "hidden";
|
|
30
42
|
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
}
|
|
44
|
+
} else if (!enabled && wasEnabled.current) {
|
|
45
|
+
wasEnabled.current = false;
|
|
46
|
+
if (--refCount === 0 && previousStyles) {
|
|
47
|
+
const html = document.documentElement;
|
|
48
|
+
const body = document.body;
|
|
49
|
+
html.style.overflow = previousStyles.htmlOverflow;
|
|
50
|
+
html.style.scrollbarGutter = previousStyles.htmlScrollbarGutter;
|
|
51
|
+
body.style.position = previousStyles.bodyPosition;
|
|
52
|
+
body.style.top = previousStyles.bodyTop;
|
|
53
|
+
body.style.width = previousStyles.bodyWidth;
|
|
54
|
+
body.style.overflow = previousStyles.bodyOverflow;
|
|
55
|
+
body.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior;
|
|
56
|
+
if (savedScrollY > 0) {
|
|
57
|
+
window.scrollTo(0, savedScrollY);
|
|
58
|
+
}
|
|
59
|
+
previousStyles = null;
|
|
60
|
+
savedScrollY = 0;
|
|
35
61
|
}
|
|
36
62
|
}
|
|
37
|
-
}, [enabled])
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
63
|
+
}, [enabled]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
return () => {
|
|
66
|
+
if (wasEnabled.current) {
|
|
67
|
+
wasEnabled.current = false;
|
|
68
|
+
if (--refCount === 0 && previousStyles) {
|
|
69
|
+
const html = document.documentElement;
|
|
70
|
+
const body = document.body;
|
|
71
|
+
html.style.overflow = previousStyles.htmlOverflow;
|
|
72
|
+
html.style.scrollbarGutter = previousStyles.htmlScrollbarGutter;
|
|
73
|
+
body.style.position = previousStyles.bodyPosition;
|
|
74
|
+
body.style.top = previousStyles.bodyTop;
|
|
75
|
+
body.style.width = previousStyles.bodyWidth;
|
|
76
|
+
body.style.overflow = previousStyles.bodyOverflow;
|
|
77
|
+
body.style.overscrollBehavior = previousStyles.bodyOverscrollBehavior;
|
|
78
|
+
if (savedScrollY > 0) {
|
|
79
|
+
window.scrollTo(0, savedScrollY);
|
|
80
|
+
}
|
|
81
|
+
previousStyles = null;
|
|
82
|
+
savedScrollY = 0;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
43
86
|
}, []);
|
|
44
87
|
};
|
|
45
88
|
export { useDisableBodyScroll };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","canUseDOM","window","document","createElement","refCount","savedScrollY","previousStyles","isIOSSafari","navigator","ua","userAgent","isIOS","test","platform","maxTouchPoints","isSafari","useDisableBodyScroll","enabled","wasEnabled","current","html","documentElement","body","scrollY","htmlOverflow","style","overflow","htmlScrollbarGutter","scrollbarGutter","bodyPosition","position","bodyTop","top","bodyWidth","width","bodyOverflow","bodyOverscrollBehavior","overscrollBehavior","scrollTo"],"sources":["../../src/useDisableScroll.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAElC,MAAMC,SAAA,GAAYA,CAAA,KAChB,OAAOC,MAAA,
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","canUseDOM","window","document","createElement","refCount","savedScrollY","previousStyles","isIOSSafari","navigator","ua","userAgent","isIOS","test","platform","maxTouchPoints","isSafari","useDisableBodyScroll","enabled","wasEnabled","current","html","documentElement","body","scrollY","htmlOverflow","style","overflow","htmlScrollbarGutter","scrollbarGutter","bodyPosition","position","bodyTop","top","bodyWidth","width","bodyOverflow","bodyOverscrollBehavior","overscrollBehavior","scrollTo"],"sources":["../../src/useDisableScroll.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|