@rc-component/portal 1.0.0-2 → 1.0.0-3
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/es/useScrollLocker.js +16 -6
- package/lib/useScrollLocker.js +17 -6
- package/package.json +1 -1
package/es/useScrollLocker.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { updateCSS, removeCSS } from "rc-util/es/Dom/dynamicCSS";
|
|
3
|
+
import useLayoutEffect, { useLayoutUpdateEffect } from "rc-util/es/hooks/useLayoutEffect";
|
|
3
4
|
import getScrollBarSize from "rc-util/es/getScrollBarSize";
|
|
4
5
|
var lockCount = 0;
|
|
5
6
|
var locked = false;
|
|
@@ -21,18 +22,27 @@ function syncLocker() {
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export default function useScrollLocker(lock) {
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
var mergedLock = !!lock; // Init only check lock
|
|
26
|
+
|
|
27
|
+
useLayoutEffect(function () {
|
|
28
|
+
if (mergedLock) {
|
|
29
|
+
lockCount += 1;
|
|
30
|
+
syncLocker();
|
|
31
|
+
}
|
|
32
|
+
}, []); // Update will both check the lock state
|
|
33
|
+
|
|
34
|
+
useLayoutUpdateEffect(function () {
|
|
35
|
+
if (mergedLock) {
|
|
26
36
|
lockCount += 1;
|
|
27
37
|
syncLocker();
|
|
28
38
|
} else {
|
|
29
39
|
lockCount -= 1;
|
|
30
40
|
syncLocker();
|
|
31
41
|
}
|
|
32
|
-
}, [
|
|
33
|
-
var lockRef = React.useRef(
|
|
34
|
-
lockRef.current =
|
|
35
|
-
|
|
42
|
+
}, [mergedLock]);
|
|
43
|
+
var lockRef = React.useRef(mergedLock);
|
|
44
|
+
lockRef.current = mergedLock;
|
|
45
|
+
useLayoutEffect(function () {
|
|
36
46
|
return function () {
|
|
37
47
|
if (lockRef.current) {
|
|
38
48
|
lockCount -= 1;
|
package/lib/useScrollLocker.js
CHANGED
|
@@ -13,6 +13,8 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _dynamicCSS = require("rc-util/lib/Dom/dynamicCSS");
|
|
15
15
|
|
|
16
|
+
var _useLayoutEffect = _interopRequireWildcard(require("rc-util/lib/hooks/useLayoutEffect"));
|
|
17
|
+
|
|
16
18
|
var _getScrollBarSize = _interopRequireDefault(require("rc-util/lib/getScrollBarSize"));
|
|
17
19
|
|
|
18
20
|
var lockCount = 0;
|
|
@@ -35,18 +37,27 @@ function syncLocker() {
|
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
function useScrollLocker(lock) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
var mergedLock = !!lock; // Init only check lock
|
|
41
|
+
|
|
42
|
+
(0, _useLayoutEffect.default)(function () {
|
|
43
|
+
if (mergedLock) {
|
|
44
|
+
lockCount += 1;
|
|
45
|
+
syncLocker();
|
|
46
|
+
}
|
|
47
|
+
}, []); // Update will both check the lock state
|
|
48
|
+
|
|
49
|
+
(0, _useLayoutEffect.useLayoutUpdateEffect)(function () {
|
|
50
|
+
if (mergedLock) {
|
|
40
51
|
lockCount += 1;
|
|
41
52
|
syncLocker();
|
|
42
53
|
} else {
|
|
43
54
|
lockCount -= 1;
|
|
44
55
|
syncLocker();
|
|
45
56
|
}
|
|
46
|
-
}, [
|
|
47
|
-
var lockRef = React.useRef(
|
|
48
|
-
lockRef.current =
|
|
49
|
-
|
|
57
|
+
}, [mergedLock]);
|
|
58
|
+
var lockRef = React.useRef(mergedLock);
|
|
59
|
+
lockRef.current = mergedLock;
|
|
60
|
+
(0, _useLayoutEffect.default)(function () {
|
|
50
61
|
return function () {
|
|
51
62
|
if (lockRef.current) {
|
|
52
63
|
lockCount -= 1;
|