@reactuses/core 4.0.6 → 4.0.8
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/README.md +8 -2
- package/dist/index.cjs +207 -99
- package/dist/index.d.ts +13 -2
- package/dist/index.mjs +206 -100
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Collection of essential React Hooks Utilities.
|
|
|
32
32
|
```tsx harmony
|
|
33
33
|
import { useToggle } from "@reactuses/core";
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
function Demo() {
|
|
36
36
|
const [on, toggle] = useToggle(true);
|
|
37
37
|
|
|
38
38
|
return (
|
|
@@ -43,7 +43,7 @@ const Demo = () => {
|
|
|
43
43
|
<button onClick={() => toggle(false)}>set OFF</button>
|
|
44
44
|
</div>
|
|
45
45
|
);
|
|
46
|
-
}
|
|
46
|
+
}
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
Refer to [documentations](https://reactuse.com/) for more details.
|
|
@@ -56,6 +56,12 @@ Refer to [documentations](https://reactuse.com/) for more details.
|
|
|
56
56
|
|
|
57
57
|
<hr/>
|
|
58
58
|
|
|
59
|
+
## Feedback
|
|
60
|
+
|
|
61
|
+
You can submit an [issue](https://github.com/childrentime/reactuse/issues) or provide feedback on [Discord](https://discord.gg/WzDtCCFF).
|
|
62
|
+
|
|
63
|
+
<hr/>
|
|
64
|
+
|
|
59
65
|
## Contribute
|
|
60
66
|
|
|
61
67
|
See the [**Contributing Guide**](CONTRIBUTING.md)
|
package/dist/index.cjs
CHANGED
|
@@ -81,7 +81,7 @@ function useEvent(fn) {
|
|
|
81
81
|
}, []);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
const defaultOptions = {};
|
|
84
|
+
const defaultOptions$1 = {};
|
|
85
85
|
const defaultOnError = (e) => {
|
|
86
86
|
console.error(e);
|
|
87
87
|
};
|
|
@@ -120,7 +120,7 @@ const StorageSerializers = {
|
|
|
120
120
|
write: (v) => v.toISOString()
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
|
-
const getInitialState$
|
|
123
|
+
const getInitialState$4 = (key, defaultValue, storage, serializer, onError) => {
|
|
124
124
|
if (defaultValue !== void 0) {
|
|
125
125
|
return defaultValue;
|
|
126
126
|
}
|
|
@@ -141,7 +141,7 @@ const getInitialState$3 = (key, defaultValue, storage, serializer, onError) => {
|
|
|
141
141
|
}
|
|
142
142
|
return null;
|
|
143
143
|
};
|
|
144
|
-
function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionStorage : void 0, options = defaultOptions) {
|
|
144
|
+
function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionStorage : void 0, options = defaultOptions$1) {
|
|
145
145
|
let storage;
|
|
146
146
|
const { onError = defaultOnError, csrData } = options;
|
|
147
147
|
try {
|
|
@@ -155,7 +155,7 @@ function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionSto
|
|
|
155
155
|
return (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
156
156
|
}, [options.serializer, type]);
|
|
157
157
|
const [state, setState] = React.useState(
|
|
158
|
-
getInitialState$
|
|
158
|
+
getInitialState$4(key, defaultValue, storage, serializer, onError)
|
|
159
159
|
);
|
|
160
160
|
React.useEffect(() => {
|
|
161
161
|
const data = csrData ? isFunction$1(csrData) ? csrData() : csrData : defaultValue;
|
|
@@ -192,7 +192,7 @@ function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionSto
|
|
|
192
192
|
return [state, updateState];
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
function useLocalStorage(key, defaultValue, options = defaultOptions) {
|
|
195
|
+
function useLocalStorage(key, defaultValue, options = defaultOptions$1) {
|
|
196
196
|
return useStorage(
|
|
197
197
|
key,
|
|
198
198
|
defaultValue,
|
|
@@ -201,7 +201,7 @@ function useLocalStorage(key, defaultValue, options = defaultOptions) {
|
|
|
201
201
|
);
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
function useSessionStorage(key, defaultValue, options = defaultOptions) {
|
|
204
|
+
function useSessionStorage(key, defaultValue, options = defaultOptions$1) {
|
|
205
205
|
return useStorage(
|
|
206
206
|
key,
|
|
207
207
|
defaultValue,
|
|
@@ -215,7 +215,7 @@ function useToggle(initialValue) {
|
|
|
215
215
|
return React.useReducer(toggleReducer, initialValue);
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
function useInterval(callback, delay, options = defaultOptions) {
|
|
218
|
+
function useInterval(callback, delay, options = defaultOptions$1) {
|
|
219
219
|
const immediate = options.immediate;
|
|
220
220
|
const savedCallback = useLatest(callback);
|
|
221
221
|
React.useEffect(() => {
|
|
@@ -279,7 +279,7 @@ function useDarkMode(options) {
|
|
|
279
279
|
return [dark, () => setDark((dark2) => !dark2), setDark];
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
-
const getInitialState$
|
|
282
|
+
const getInitialState$3 = (query, defaultState) => {
|
|
283
283
|
if (defaultState !== void 0) {
|
|
284
284
|
return defaultState;
|
|
285
285
|
}
|
|
@@ -294,7 +294,7 @@ const getInitialState$2 = (query, defaultState) => {
|
|
|
294
294
|
return false;
|
|
295
295
|
};
|
|
296
296
|
function useMediaQuery(query, defaultState) {
|
|
297
|
-
const [state, setState] = React.useState(getInitialState$
|
|
297
|
+
const [state, setState] = React.useState(getInitialState$3(query, defaultState));
|
|
298
298
|
React.useEffect(() => {
|
|
299
299
|
var _a;
|
|
300
300
|
let mounted = true;
|
|
@@ -785,7 +785,7 @@ function baseIsNative(value) {
|
|
|
785
785
|
* @param {string} key The key of the property to get.
|
|
786
786
|
* @returns {*} Returns the property value.
|
|
787
787
|
*/
|
|
788
|
-
function getValue(object, key) {
|
|
788
|
+
function getValue$1(object, key) {
|
|
789
789
|
return object == null ? undefined : object[key];
|
|
790
790
|
}
|
|
791
791
|
|
|
@@ -798,7 +798,7 @@ function getValue(object, key) {
|
|
|
798
798
|
* @returns {*} Returns the function if it's native, else `undefined`.
|
|
799
799
|
*/
|
|
800
800
|
function getNative(object, key) {
|
|
801
|
-
var value = getValue(object, key);
|
|
801
|
+
var value = getValue$1(object, key);
|
|
802
802
|
return baseIsNative(value) ? value : undefined;
|
|
803
803
|
}
|
|
804
804
|
|
|
@@ -2873,7 +2873,7 @@ function useUpdate() {
|
|
|
2873
2873
|
return update;
|
|
2874
2874
|
}
|
|
2875
2875
|
|
|
2876
|
-
function useTimeoutFn(cb, interval, options = defaultOptions) {
|
|
2876
|
+
function useTimeoutFn(cb, interval, options = defaultOptions$1) {
|
|
2877
2877
|
const { immediate = true } = options;
|
|
2878
2878
|
const [pending, setPending] = React.useState(false);
|
|
2879
2879
|
const savedCallback = useLatest(cb);
|
|
@@ -2963,7 +2963,7 @@ function useLatestElement(target, defaultElement) {
|
|
|
2963
2963
|
return latestElement;
|
|
2964
2964
|
}
|
|
2965
2965
|
|
|
2966
|
-
function useEventListener(eventName, handler, element, options = defaultOptions) {
|
|
2966
|
+
function useEventListener(eventName, handler, element, options = defaultOptions$1) {
|
|
2967
2967
|
const savedHandler = useLatest(handler);
|
|
2968
2968
|
const targetElement = useLatestElement(element, defaultWindow);
|
|
2969
2969
|
React.useEffect(() => {
|
|
@@ -3120,7 +3120,7 @@ function useFavicon(href, baseUrl = "", rel = "icon") {
|
|
|
3120
3120
|
}, [baseUrl, href, rel]);
|
|
3121
3121
|
}
|
|
3122
3122
|
|
|
3123
|
-
function useMutationObserver(callback, target, options = defaultOptions) {
|
|
3123
|
+
function useMutationObserver(callback, target, options = defaultOptions$1) {
|
|
3124
3124
|
const callbackRef = useLatest(callback);
|
|
3125
3125
|
const observerRef = React.useRef();
|
|
3126
3126
|
const element = useLatestElement(target);
|
|
@@ -3189,7 +3189,7 @@ function useTitle(title) {
|
|
|
3189
3189
|
}, [title]);
|
|
3190
3190
|
}
|
|
3191
3191
|
|
|
3192
|
-
function useScriptTag(src, onLoaded = noop, options = defaultOptions) {
|
|
3192
|
+
function useScriptTag(src, onLoaded = noop, options = defaultOptions$1) {
|
|
3193
3193
|
const {
|
|
3194
3194
|
immediate = true,
|
|
3195
3195
|
manual = false,
|
|
@@ -3306,6 +3306,7 @@ function useScriptTag(src, onLoaded = noop, options = defaultOptions) {
|
|
|
3306
3306
|
function usePermission(permissionDesc) {
|
|
3307
3307
|
const [state, setState] = React.useState("");
|
|
3308
3308
|
React.useEffect(() => {
|
|
3309
|
+
var _a;
|
|
3309
3310
|
const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc;
|
|
3310
3311
|
let mounted = true;
|
|
3311
3312
|
let permissionStatus = null;
|
|
@@ -3314,11 +3315,11 @@ function usePermission(permissionDesc) {
|
|
|
3314
3315
|
return;
|
|
3315
3316
|
}
|
|
3316
3317
|
setState(() => {
|
|
3317
|
-
var
|
|
3318
|
-
return (
|
|
3318
|
+
var _a2;
|
|
3319
|
+
return (_a2 = permissionStatus == null ? void 0 : permissionStatus.state) != null ? _a2 : "";
|
|
3319
3320
|
});
|
|
3320
3321
|
};
|
|
3321
|
-
navigator.permissions.query(desc).then((status) => {
|
|
3322
|
+
(_a = navigator.permissions) == null ? void 0 : _a.query(desc).then((status) => {
|
|
3322
3323
|
permissionStatus = status;
|
|
3323
3324
|
on(permissionStatus, "change", onChange);
|
|
3324
3325
|
onChange();
|
|
@@ -3343,7 +3344,7 @@ const preventDefault$1 = (ev) => {
|
|
|
3343
3344
|
ev.preventDefault();
|
|
3344
3345
|
}
|
|
3345
3346
|
};
|
|
3346
|
-
function useLongPress(callback, { isPreventDefault = true, delay = 300 } = defaultOptions) {
|
|
3347
|
+
function useLongPress(callback, { isPreventDefault = true, delay = 300 } = defaultOptions$1) {
|
|
3347
3348
|
const timeout = React.useRef();
|
|
3348
3349
|
const target = React.useRef();
|
|
3349
3350
|
const start = React.useCallback(
|
|
@@ -3529,7 +3530,7 @@ function useMediaDevices(options = {}) {
|
|
|
3529
3530
|
return [state, ensurePermissions];
|
|
3530
3531
|
}
|
|
3531
3532
|
|
|
3532
|
-
function useTextDirection(options = defaultOptions) {
|
|
3533
|
+
function useTextDirection(options = defaultOptions$1) {
|
|
3533
3534
|
const { selector = "html", initialValue = "ltr" } = options;
|
|
3534
3535
|
const getValue = () => {
|
|
3535
3536
|
var _a, _b;
|
|
@@ -3556,18 +3557,18 @@ function useTextDirection(options = defaultOptions) {
|
|
|
3556
3557
|
}
|
|
3557
3558
|
|
|
3558
3559
|
const initState = {
|
|
3559
|
-
screenX: NaN,
|
|
3560
|
-
screenY: NaN,
|
|
3561
|
-
clientX: NaN,
|
|
3562
|
-
clientY: NaN,
|
|
3563
|
-
pageX: NaN,
|
|
3564
|
-
pageY: NaN,
|
|
3565
|
-
elementX: NaN,
|
|
3566
|
-
elementY: NaN,
|
|
3567
|
-
elementH: NaN,
|
|
3568
|
-
elementW: NaN,
|
|
3569
|
-
elementPosX: NaN,
|
|
3570
|
-
elementPosY: NaN
|
|
3560
|
+
screenX: Number.NaN,
|
|
3561
|
+
screenY: Number.NaN,
|
|
3562
|
+
clientX: Number.NaN,
|
|
3563
|
+
clientY: Number.NaN,
|
|
3564
|
+
pageX: Number.NaN,
|
|
3565
|
+
pageY: Number.NaN,
|
|
3566
|
+
elementX: Number.NaN,
|
|
3567
|
+
elementY: Number.NaN,
|
|
3568
|
+
elementH: Number.NaN,
|
|
3569
|
+
elementW: Number.NaN,
|
|
3570
|
+
elementPosX: Number.NaN,
|
|
3571
|
+
elementPosY: Number.NaN
|
|
3571
3572
|
};
|
|
3572
3573
|
function useMouse(target) {
|
|
3573
3574
|
const [state, setState] = useRafState(initState);
|
|
@@ -3582,12 +3583,12 @@ function useMouse(target) {
|
|
|
3582
3583
|
clientY,
|
|
3583
3584
|
pageX,
|
|
3584
3585
|
pageY,
|
|
3585
|
-
elementX: NaN,
|
|
3586
|
-
elementY: NaN,
|
|
3587
|
-
elementH: NaN,
|
|
3588
|
-
elementW: NaN,
|
|
3589
|
-
elementPosX: NaN,
|
|
3590
|
-
elementPosY: NaN
|
|
3586
|
+
elementX: Number.NaN,
|
|
3587
|
+
elementY: Number.NaN,
|
|
3588
|
+
elementH: Number.NaN,
|
|
3589
|
+
elementW: Number.NaN,
|
|
3590
|
+
elementPosX: Number.NaN,
|
|
3591
|
+
elementPosY: Number.NaN
|
|
3591
3592
|
};
|
|
3592
3593
|
const targetElement = getTargetElement(target);
|
|
3593
3594
|
if (targetElement) {
|
|
@@ -3606,7 +3607,7 @@ function useMouse(target) {
|
|
|
3606
3607
|
return state;
|
|
3607
3608
|
}
|
|
3608
3609
|
|
|
3609
|
-
function useFps(options = defaultOptions) {
|
|
3610
|
+
function useFps(options = defaultOptions$1) {
|
|
3610
3611
|
var _a;
|
|
3611
3612
|
const [fps, setFps] = React.useState(0);
|
|
3612
3613
|
const every = (_a = options.every) != null ? _a : 10;
|
|
@@ -3629,14 +3630,14 @@ var index$2 = typeof performance === "undefined" ? useFpsMock : useFps;
|
|
|
3629
3630
|
|
|
3630
3631
|
const initCoord = {
|
|
3631
3632
|
accuracy: 0,
|
|
3632
|
-
latitude:
|
|
3633
|
-
longitude:
|
|
3633
|
+
latitude: Number.POSITIVE_INFINITY,
|
|
3634
|
+
longitude: Number.POSITIVE_INFINITY,
|
|
3634
3635
|
altitude: null,
|
|
3635
3636
|
altitudeAccuracy: null,
|
|
3636
3637
|
heading: null,
|
|
3637
3638
|
speed: null
|
|
3638
3639
|
};
|
|
3639
|
-
function useGeolocation(options = defaultOptions) {
|
|
3640
|
+
function useGeolocation(options = defaultOptions$1) {
|
|
3640
3641
|
const {
|
|
3641
3642
|
enableHighAccuracy = true,
|
|
3642
3643
|
maximumAge = 3e4,
|
|
@@ -3862,7 +3863,7 @@ var screenfull$1 = {exports: {}};
|
|
|
3862
3863
|
|
|
3863
3864
|
var screenfull = screenfull$1.exports;
|
|
3864
3865
|
|
|
3865
|
-
function useFullscreen(target, options = defaultOptions) {
|
|
3866
|
+
function useFullscreen(target, options = defaultOptions$1) {
|
|
3866
3867
|
const { onExit, onEnter } = options;
|
|
3867
3868
|
const [state, setState] = React.useState(false);
|
|
3868
3869
|
const onChange = () => {
|
|
@@ -4014,7 +4015,7 @@ function useOrientation(initialState = defaultState$1) {
|
|
|
4014
4015
|
return [state, lockOrientation, unlockOrientation];
|
|
4015
4016
|
}
|
|
4016
4017
|
|
|
4017
|
-
function useIntersectionObserver(target, callback, options = defaultOptions) {
|
|
4018
|
+
function useIntersectionObserver(target, callback, options = defaultOptions$1) {
|
|
4018
4019
|
const savedCallback = useLatest(callback);
|
|
4019
4020
|
const observerRef = React.useRef();
|
|
4020
4021
|
const element = useLatestElement(target);
|
|
@@ -4052,7 +4053,7 @@ function usePageLeave() {
|
|
|
4052
4053
|
return isLeft;
|
|
4053
4054
|
}
|
|
4054
4055
|
|
|
4055
|
-
const getInitialState$
|
|
4056
|
+
const getInitialState$2 = (defaultValue) => {
|
|
4056
4057
|
if (defaultValue !== void 0) {
|
|
4057
4058
|
return defaultValue;
|
|
4058
4059
|
}
|
|
@@ -4068,7 +4069,7 @@ const getInitialState$1 = (defaultValue) => {
|
|
|
4068
4069
|
};
|
|
4069
4070
|
function useDocumentVisibility(defaultValue) {
|
|
4070
4071
|
const [visible, setVisible] = React.useState(
|
|
4071
|
-
getInitialState$
|
|
4072
|
+
getInitialState$2(defaultValue)
|
|
4072
4073
|
);
|
|
4073
4074
|
useEventListener(
|
|
4074
4075
|
"visibilitychange",
|
|
@@ -4083,7 +4084,7 @@ function useDocumentVisibility(defaultValue) {
|
|
|
4083
4084
|
return visible;
|
|
4084
4085
|
}
|
|
4085
4086
|
|
|
4086
|
-
function useResizeObserver(target, callback, options = defaultOptions) {
|
|
4087
|
+
function useResizeObserver(target, callback, options = defaultOptions$1) {
|
|
4087
4088
|
const savedCallback = useLatest(callback);
|
|
4088
4089
|
const observerRef = React.useRef();
|
|
4089
4090
|
const element = useLatestElement(target);
|
|
@@ -4168,7 +4169,7 @@ const DEFAULT_OPTIONS = {
|
|
|
4168
4169
|
multiple: true,
|
|
4169
4170
|
accept: "*"
|
|
4170
4171
|
};
|
|
4171
|
-
function useFileDialog(options = defaultOptions) {
|
|
4172
|
+
function useFileDialog(options = defaultOptions$1) {
|
|
4172
4173
|
const [files, setFiles] = React.useState(null);
|
|
4173
4174
|
const inputRef = React.useRef();
|
|
4174
4175
|
const initFn = React.useCallback(() => {
|
|
@@ -4208,7 +4209,7 @@ const defaultListerOptions = {
|
|
|
4208
4209
|
capture: false,
|
|
4209
4210
|
passive: true
|
|
4210
4211
|
};
|
|
4211
|
-
function useScroll(target, options = defaultOptions) {
|
|
4212
|
+
function useScroll(target, options = defaultOptions$1) {
|
|
4212
4213
|
const {
|
|
4213
4214
|
throttle = 0,
|
|
4214
4215
|
idle = 200,
|
|
@@ -4315,7 +4316,7 @@ var __async$3 = (__this, __arguments, generator) => {
|
|
|
4315
4316
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
4316
4317
|
});
|
|
4317
4318
|
};
|
|
4318
|
-
function useInfiniteScroll(target, onLoadMore, options = defaultOptions) {
|
|
4319
|
+
function useInfiniteScroll(target, onLoadMore, options = defaultOptions$1) {
|
|
4319
4320
|
var _a, _b;
|
|
4320
4321
|
const savedLoadMore = useLatest(onLoadMore);
|
|
4321
4322
|
const direction = (_a = options.direction) != null ? _a : "bottom";
|
|
@@ -4351,7 +4352,7 @@ const defaultEvents = [
|
|
|
4351
4352
|
"keydown",
|
|
4352
4353
|
"keyup"
|
|
4353
4354
|
];
|
|
4354
|
-
function useKeyModifier(modifier, options = defaultOptions) {
|
|
4355
|
+
function useKeyModifier(modifier, options = defaultOptions$1) {
|
|
4355
4356
|
const { events = defaultEvents, initial = false } = options;
|
|
4356
4357
|
const [state, setState] = React.useState(initial);
|
|
4357
4358
|
useMount(() => {
|
|
@@ -4376,7 +4377,7 @@ function useKeyModifier(modifier, options = defaultOptions) {
|
|
|
4376
4377
|
}
|
|
4377
4378
|
|
|
4378
4379
|
const listenerOptions$2 = { passive: true };
|
|
4379
|
-
function useMousePressed(target, options = defaultOptions) {
|
|
4380
|
+
function useMousePressed(target, options = defaultOptions$1) {
|
|
4380
4381
|
const { touch = true, drag = true, initialValue = false } = options;
|
|
4381
4382
|
const [pressed, setPressed] = React.useState(initialValue);
|
|
4382
4383
|
const [sourceType, setSourceType] = React.useState(null);
|
|
@@ -4483,7 +4484,7 @@ function useScrollLock(target, initialState = false) {
|
|
|
4483
4484
|
return [locked, set];
|
|
4484
4485
|
}
|
|
4485
4486
|
|
|
4486
|
-
function useElementSize(target, options = defaultOptions) {
|
|
4487
|
+
function useElementSize(target, options = defaultOptions$1) {
|
|
4487
4488
|
const { box = "content-box" } = options;
|
|
4488
4489
|
const [width, setWidth] = React.useState(0);
|
|
4489
4490
|
const [height, setHeight] = React.useState(0);
|
|
@@ -4723,7 +4724,7 @@ function useDraggable(target, options = {}) {
|
|
|
4723
4724
|
return [position.x, position.y, !!pressedDelta];
|
|
4724
4725
|
}
|
|
4725
4726
|
|
|
4726
|
-
function useElementBounding(target, options = defaultOptions) {
|
|
4727
|
+
function useElementBounding(target, options = defaultOptions$1) {
|
|
4727
4728
|
const {
|
|
4728
4729
|
reset = true,
|
|
4729
4730
|
windowResize = true,
|
|
@@ -4798,7 +4799,7 @@ function useElementBounding(target, options = defaultOptions) {
|
|
|
4798
4799
|
};
|
|
4799
4800
|
}
|
|
4800
4801
|
|
|
4801
|
-
function useElementVisibility(target, options = defaultOptions) {
|
|
4802
|
+
function useElementVisibility(target, options = defaultOptions$1) {
|
|
4802
4803
|
const [visible, setVisible] = React.useState(false);
|
|
4803
4804
|
const callback = React.useCallback((entries) => {
|
|
4804
4805
|
const rect = entries[0].boundingClientRect;
|
|
@@ -5134,7 +5135,7 @@ function useScrollIntoView(targetElement, {
|
|
|
5134
5135
|
offset = 0,
|
|
5135
5136
|
cancelable = true,
|
|
5136
5137
|
isList = false
|
|
5137
|
-
} = defaultOptions, scrollElement) {
|
|
5138
|
+
} = defaultOptions$1, scrollElement) {
|
|
5138
5139
|
const frameID = React.useRef(0);
|
|
5139
5140
|
const startTime = React.useRef(0);
|
|
5140
5141
|
const shouldStop = React.useRef(false);
|
|
@@ -5145,48 +5146,48 @@ function useScrollIntoView(targetElement, {
|
|
|
5145
5146
|
}
|
|
5146
5147
|
};
|
|
5147
5148
|
const element = useLatestElement(targetElement);
|
|
5148
|
-
const scrollIntoView =
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5149
|
+
const scrollIntoView = ({
|
|
5150
|
+
alignment = "start"
|
|
5151
|
+
} = {}) => {
|
|
5152
|
+
var _a;
|
|
5153
|
+
const parent = getTargetElement(scrollElement) || getScrollParent(axis, element);
|
|
5154
|
+
shouldStop.current = false;
|
|
5155
|
+
if (frameID.current) {
|
|
5156
|
+
cancel();
|
|
5157
|
+
}
|
|
5158
|
+
const start = (_a = getScrollStart({ parent, axis })) != null ? _a : 0;
|
|
5159
|
+
const change = getRelativePosition({
|
|
5160
|
+
parent,
|
|
5161
|
+
target: element,
|
|
5162
|
+
axis,
|
|
5163
|
+
alignment,
|
|
5164
|
+
offset,
|
|
5165
|
+
isList
|
|
5166
|
+
}) - (parent ? 0 : start);
|
|
5167
|
+
const animateScroll = () => {
|
|
5168
|
+
if (startTime.current === 0) {
|
|
5169
|
+
startTime.current = performance.now();
|
|
5155
5170
|
}
|
|
5156
|
-
const
|
|
5157
|
-
const
|
|
5171
|
+
const now = performance.now();
|
|
5172
|
+
const elapsed = now - startTime.current;
|
|
5173
|
+
const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;
|
|
5174
|
+
const distance = start + change * easing(t);
|
|
5175
|
+
setScrollParam({
|
|
5158
5176
|
parent,
|
|
5159
|
-
target: element,
|
|
5160
5177
|
axis,
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
parent,
|
|
5175
|
-
axis,
|
|
5176
|
-
distance
|
|
5177
|
-
});
|
|
5178
|
-
if (!shouldStop.current && t < 1) {
|
|
5179
|
-
frameID.current = requestAnimationFrame(animateScroll);
|
|
5180
|
-
} else {
|
|
5181
|
-
typeof onScrollFinish === "function" && onScrollFinish();
|
|
5182
|
-
startTime.current = 0;
|
|
5183
|
-
frameID.current = 0;
|
|
5184
|
-
cancel();
|
|
5185
|
-
}
|
|
5186
|
-
};
|
|
5187
|
-
animateScroll();
|
|
5188
|
-
}
|
|
5189
|
-
);
|
|
5178
|
+
distance
|
|
5179
|
+
});
|
|
5180
|
+
if (!shouldStop.current && t < 1) {
|
|
5181
|
+
frameID.current = requestAnimationFrame(animateScroll);
|
|
5182
|
+
} else {
|
|
5183
|
+
typeof onScrollFinish === "function" && onScrollFinish();
|
|
5184
|
+
startTime.current = 0;
|
|
5185
|
+
frameID.current = 0;
|
|
5186
|
+
cancel();
|
|
5187
|
+
}
|
|
5188
|
+
};
|
|
5189
|
+
animateScroll();
|
|
5190
|
+
};
|
|
5190
5191
|
const handleStop = () => {
|
|
5191
5192
|
if (cancelable) {
|
|
5192
5193
|
shouldStop.current = true;
|
|
@@ -5485,7 +5486,7 @@ function init (converter, defaultAttributes) {
|
|
|
5485
5486
|
|
|
5486
5487
|
var api = init(defaultConverter, { path: '/' });
|
|
5487
5488
|
|
|
5488
|
-
const getInitialState = (key, defaultValue) => {
|
|
5489
|
+
const getInitialState$1 = (key, defaultValue) => {
|
|
5489
5490
|
if (defaultValue !== void 0) {
|
|
5490
5491
|
return defaultValue;
|
|
5491
5492
|
}
|
|
@@ -5499,9 +5500,9 @@ const getInitialState = (key, defaultValue) => {
|
|
|
5499
5500
|
}
|
|
5500
5501
|
return "";
|
|
5501
5502
|
};
|
|
5502
|
-
function useCookie(key, options = defaultOptions, defaultValue) {
|
|
5503
|
+
function useCookie(key, options = defaultOptions$1, defaultValue) {
|
|
5503
5504
|
const [cookieValue, setCookieValue] = React.useState(
|
|
5504
|
-
getInitialState(key, defaultValue)
|
|
5505
|
+
getInitialState$1(key, defaultValue)
|
|
5505
5506
|
);
|
|
5506
5507
|
React.useEffect(() => {
|
|
5507
5508
|
const getStoredValue = () => {
|
|
@@ -5611,7 +5612,7 @@ const defaultState = {
|
|
|
5611
5612
|
bottom: 0,
|
|
5612
5613
|
right: 0
|
|
5613
5614
|
};
|
|
5614
|
-
function useMeasure(target, options = defaultOptions) {
|
|
5615
|
+
function useMeasure(target, options = defaultOptions$1) {
|
|
5615
5616
|
const [rect, setRect] = React.useState(defaultState);
|
|
5616
5617
|
const stop = useResizeObserver(
|
|
5617
5618
|
target,
|
|
@@ -5635,6 +5636,111 @@ function useHover(target) {
|
|
|
5635
5636
|
return hovered;
|
|
5636
5637
|
}
|
|
5637
5638
|
|
|
5639
|
+
const defaultOptions = {
|
|
5640
|
+
observe: false
|
|
5641
|
+
};
|
|
5642
|
+
const getInitialState = (defaultValue) => {
|
|
5643
|
+
if (defaultValue !== void 0) {
|
|
5644
|
+
return defaultValue;
|
|
5645
|
+
}
|
|
5646
|
+
if (isBrowser) {
|
|
5647
|
+
return "";
|
|
5648
|
+
}
|
|
5649
|
+
if (process.env.NODE_ENV !== "production") {
|
|
5650
|
+
console.warn(
|
|
5651
|
+
"`useCssVar` When server side rendering, defaultValue should be defined to prevent a hydration mismatches."
|
|
5652
|
+
);
|
|
5653
|
+
}
|
|
5654
|
+
return "";
|
|
5655
|
+
};
|
|
5656
|
+
function useCssVar(prop, target, defaultValue, options = defaultOptions) {
|
|
5657
|
+
const { observe } = options;
|
|
5658
|
+
const [variable, setVariable] = React.useState(
|
|
5659
|
+
getInitialState(defaultValue)
|
|
5660
|
+
);
|
|
5661
|
+
const element = useLatestElement(target);
|
|
5662
|
+
const observerRef = React.useRef();
|
|
5663
|
+
const set = React.useCallback(
|
|
5664
|
+
(v) => {
|
|
5665
|
+
if (element == null ? void 0 : element.style) {
|
|
5666
|
+
element == null ? void 0 : element.style.setProperty(prop, v);
|
|
5667
|
+
setVariable(v);
|
|
5668
|
+
}
|
|
5669
|
+
},
|
|
5670
|
+
[element, prop]
|
|
5671
|
+
);
|
|
5672
|
+
const updateCssVar = React.useCallback(() => {
|
|
5673
|
+
var _a;
|
|
5674
|
+
if (element) {
|
|
5675
|
+
const value = (_a = window.getComputedStyle(element).getPropertyValue(prop)) == null ? void 0 : _a.trim();
|
|
5676
|
+
setVariable(value);
|
|
5677
|
+
}
|
|
5678
|
+
}, [element, prop]);
|
|
5679
|
+
React.useEffect(() => {
|
|
5680
|
+
var _a;
|
|
5681
|
+
if (!element) {
|
|
5682
|
+
return;
|
|
5683
|
+
}
|
|
5684
|
+
const value = (_a = window.getComputedStyle(element).getPropertyValue(prop)) == null ? void 0 : _a.trim();
|
|
5685
|
+
if (!value && defaultValue) {
|
|
5686
|
+
set(defaultValue);
|
|
5687
|
+
} else {
|
|
5688
|
+
updateCssVar();
|
|
5689
|
+
}
|
|
5690
|
+
if (!observe) {
|
|
5691
|
+
return;
|
|
5692
|
+
}
|
|
5693
|
+
observerRef.current = new MutationObserver(updateCssVar);
|
|
5694
|
+
observerRef.current.observe(element, {
|
|
5695
|
+
attributeFilter: ["style", "class"]
|
|
5696
|
+
});
|
|
5697
|
+
return () => {
|
|
5698
|
+
if (observerRef.current) {
|
|
5699
|
+
observerRef.current.disconnect();
|
|
5700
|
+
}
|
|
5701
|
+
};
|
|
5702
|
+
}, [observe, element, updateCssVar, set, defaultValue, prop]);
|
|
5703
|
+
return [variable, set];
|
|
5704
|
+
}
|
|
5705
|
+
|
|
5706
|
+
const topVarName = "--reactuse-safe-area-top";
|
|
5707
|
+
const rightVarName = "--reactuse-safe-area-right";
|
|
5708
|
+
const bottomVarName = "--reactuse-safe-area-bottom";
|
|
5709
|
+
const leftVarName = "--reactuse-safe-area-left";
|
|
5710
|
+
const defaultElement = () => document.documentElement;
|
|
5711
|
+
function useScreenSafeArea() {
|
|
5712
|
+
const top = React.useRef("");
|
|
5713
|
+
const right = React.useRef("");
|
|
5714
|
+
const bottom = React.useRef("");
|
|
5715
|
+
const left = React.useRef("");
|
|
5716
|
+
const forceUpdate = useUpdate();
|
|
5717
|
+
useCssVar(topVarName, defaultElement, "env(safe-area-inset-top, 0px)");
|
|
5718
|
+
useCssVar(rightVarName, defaultElement, "env(safe-area-inset-right, 0px)");
|
|
5719
|
+
useCssVar(bottomVarName, defaultElement, "env(safe-area-inset-bottom, 0px)");
|
|
5720
|
+
useCssVar(leftVarName, defaultElement, "env(safe-area-inset-left, 0px)");
|
|
5721
|
+
const { run: update } = useDebounceFn(() => {
|
|
5722
|
+
top.current = getValue(topVarName);
|
|
5723
|
+
right.current = getValue(rightVarName);
|
|
5724
|
+
bottom.current = getValue(bottomVarName);
|
|
5725
|
+
left.current = getValue(leftVarName);
|
|
5726
|
+
forceUpdate();
|
|
5727
|
+
});
|
|
5728
|
+
React.useEffect(() => {
|
|
5729
|
+
update();
|
|
5730
|
+
}, [update]);
|
|
5731
|
+
useEventListener("resize", update);
|
|
5732
|
+
return [
|
|
5733
|
+
top.current,
|
|
5734
|
+
right.current,
|
|
5735
|
+
bottom.current,
|
|
5736
|
+
left.current,
|
|
5737
|
+
update
|
|
5738
|
+
];
|
|
5739
|
+
}
|
|
5740
|
+
function getValue(position) {
|
|
5741
|
+
return getComputedStyle(document.documentElement).getPropertyValue(position);
|
|
5742
|
+
}
|
|
5743
|
+
|
|
5638
5744
|
exports.getHMSTime = getHMSTime;
|
|
5639
5745
|
exports.useActiveElement = useActiveElement;
|
|
5640
5746
|
exports.useAsyncEffect = useAsyncEffect;
|
|
@@ -5644,6 +5750,7 @@ exports.useControlled = useControlled;
|
|
|
5644
5750
|
exports.useCookie = useCookie;
|
|
5645
5751
|
exports.useCountDown = useCountDown;
|
|
5646
5752
|
exports.useCounter = useCounter;
|
|
5753
|
+
exports.useCssVar = useCssVar;
|
|
5647
5754
|
exports.useCustomCompareEffect = useCustomCompareEffect;
|
|
5648
5755
|
exports.useCycleList = useCycleList;
|
|
5649
5756
|
exports.useDarkMode = useDarkMode;
|
|
@@ -5702,6 +5809,7 @@ exports.useRafFn = useRafFn;
|
|
|
5702
5809
|
exports.useRafState = useRafState;
|
|
5703
5810
|
exports.useReducedMotion = useReducedMotion;
|
|
5704
5811
|
exports.useResizeObserver = useResizeObserver;
|
|
5812
|
+
exports.useScreenSafeArea = useScreenSafeArea;
|
|
5705
5813
|
exports.useScriptTag = useScriptTag;
|
|
5706
5814
|
exports.useScroll = useScroll;
|
|
5707
5815
|
exports.useScrollIntoView = useScrollIntoView;
|
package/dist/index.d.ts
CHANGED
|
@@ -807,7 +807,7 @@ interface ScrollIntoViewParams {
|
|
|
807
807
|
isList?: boolean;
|
|
808
808
|
}
|
|
809
809
|
declare function useScrollIntoView(targetElement: BasicTarget<HTMLElement>, { duration, axis, onScrollFinish, easing, offset, cancelable, isList, }?: ScrollIntoViewParams, scrollElement?: BasicTarget<HTMLElement>): {
|
|
810
|
-
scrollIntoView: ({ alignment }?: ScrollIntoViewAnimation) => void;
|
|
810
|
+
scrollIntoView: ({ alignment, }?: ScrollIntoViewAnimation) => void;
|
|
811
811
|
cancel: () => void;
|
|
812
812
|
};
|
|
813
813
|
|
|
@@ -854,4 +854,15 @@ declare function useMeasure(target: BasicTarget, options?: ResizeObserverOptions
|
|
|
854
854
|
|
|
855
855
|
declare function useHover<T extends HTMLElement = HTMLDivElement>(target: BasicTarget<T>): boolean;
|
|
856
856
|
|
|
857
|
-
|
|
857
|
+
declare function useScreenSafeArea(): readonly [string, string, string, string, lodash.DebouncedFunc<() => void>];
|
|
858
|
+
|
|
859
|
+
interface UseCssVarOptions {
|
|
860
|
+
/**
|
|
861
|
+
* Use MutationObserver to monitor variable changes
|
|
862
|
+
* @default false
|
|
863
|
+
*/
|
|
864
|
+
observe?: boolean;
|
|
865
|
+
}
|
|
866
|
+
declare function useCssVar<T extends HTMLElement = HTMLElement>(prop: string, target: BasicTarget<T>, defaultValue?: string, options?: UseCssVarOptions): readonly [string, (v: string) => void];
|
|
867
|
+
|
|
868
|
+
export { ColorScheme, Contrast, CursorState, EyeDropperOpenReturnType, GeneralPermissionDescriptor, IDisposable, IEvent, IEventOnce, IListener, INetworkInformation, IState, IUseNetworkState, KeyModifier, MousePressedOptions, MouseSourceType, OrientationState, RafLoopReturns, ScrollIntoViewAnimation, ScrollIntoViewParams, Status, Target, UseCookieState, UseCssVarOptions, UseDarkOptions, UseDraggableOptions, UseElementBoundingOptions, UseEventEmitterReturn, UseEyeDropperReturn, UseFileDialogOptions, UseFpsOptions, UseFullScreenOptions, UseInfiniteScrollOptions, UseLongPressOptions, UseMeasureRect, UseMediaDeviceOptions, UseModifierOptions, UseScriptTagOptions, UseScrollOptions, UseStickyParams, UseTextDirectionOptions, UseTextDirectionValue, UseTimeoutFnOptions, UseVirtualListItem, UseVirtualListOptions, UseVirtualListReturn, UseWindowScrollState, WindowSize, getHMSTime, useActiveElement, useAsyncEffect, useClickOutside, useClipBorad as useClipboard, useControlled, useCookie, useCountDown, useCounter, useCssVar, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDoubleClick, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useEyeDropper, useFavicon, useFileDialog, useFirstMountState, useFocus, _default$2 as useFps, useFullscreen, useGeolocation, useHover, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLongPress, useMeasure, useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, _default$1 as useOnceEffect, _default as useOnceLayoutEffect, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useReducedMotion, useResizeObserver, useScreenSafeArea, useScriptTag, useScroll, useScrollIntoView, useScrollLock, useSessionStorage, useSetState, useSticky, useSupported, useTextDirection, useTextSelection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, _default$4 as useUpdateEffect, _default$3 as useUpdateLayoutEffect, useVirtualList, useWindowScroll, useWindowSize, useWindowsFocus };
|
package/dist/index.mjs
CHANGED
|
@@ -73,7 +73,7 @@ function useEvent(fn) {
|
|
|
73
73
|
}, []);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
const defaultOptions = {};
|
|
76
|
+
const defaultOptions$1 = {};
|
|
77
77
|
const defaultOnError = (e) => {
|
|
78
78
|
console.error(e);
|
|
79
79
|
};
|
|
@@ -112,7 +112,7 @@ const StorageSerializers = {
|
|
|
112
112
|
write: (v) => v.toISOString()
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
|
-
const getInitialState$
|
|
115
|
+
const getInitialState$4 = (key, defaultValue, storage, serializer, onError) => {
|
|
116
116
|
if (defaultValue !== void 0) {
|
|
117
117
|
return defaultValue;
|
|
118
118
|
}
|
|
@@ -133,7 +133,7 @@ const getInitialState$3 = (key, defaultValue, storage, serializer, onError) => {
|
|
|
133
133
|
}
|
|
134
134
|
return null;
|
|
135
135
|
};
|
|
136
|
-
function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionStorage : void 0, options = defaultOptions) {
|
|
136
|
+
function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionStorage : void 0, options = defaultOptions$1) {
|
|
137
137
|
let storage;
|
|
138
138
|
const { onError = defaultOnError, csrData } = options;
|
|
139
139
|
try {
|
|
@@ -147,7 +147,7 @@ function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionSto
|
|
|
147
147
|
return (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
148
148
|
}, [options.serializer, type]);
|
|
149
149
|
const [state, setState] = useState(
|
|
150
|
-
getInitialState$
|
|
150
|
+
getInitialState$4(key, defaultValue, storage, serializer, onError)
|
|
151
151
|
);
|
|
152
152
|
useEffect(() => {
|
|
153
153
|
const data = csrData ? isFunction$1(csrData) ? csrData() : csrData : defaultValue;
|
|
@@ -184,7 +184,7 @@ function useStorage(key, defaultValue, getStorage = () => isBrowser ? sessionSto
|
|
|
184
184
|
return [state, updateState];
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
function useLocalStorage(key, defaultValue, options = defaultOptions) {
|
|
187
|
+
function useLocalStorage(key, defaultValue, options = defaultOptions$1) {
|
|
188
188
|
return useStorage(
|
|
189
189
|
key,
|
|
190
190
|
defaultValue,
|
|
@@ -193,7 +193,7 @@ function useLocalStorage(key, defaultValue, options = defaultOptions) {
|
|
|
193
193
|
);
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
function useSessionStorage(key, defaultValue, options = defaultOptions) {
|
|
196
|
+
function useSessionStorage(key, defaultValue, options = defaultOptions$1) {
|
|
197
197
|
return useStorage(
|
|
198
198
|
key,
|
|
199
199
|
defaultValue,
|
|
@@ -207,7 +207,7 @@ function useToggle(initialValue) {
|
|
|
207
207
|
return useReducer(toggleReducer, initialValue);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
function useInterval(callback, delay, options = defaultOptions) {
|
|
210
|
+
function useInterval(callback, delay, options = defaultOptions$1) {
|
|
211
211
|
const immediate = options.immediate;
|
|
212
212
|
const savedCallback = useLatest(callback);
|
|
213
213
|
useEffect(() => {
|
|
@@ -271,7 +271,7 @@ function useDarkMode(options) {
|
|
|
271
271
|
return [dark, () => setDark((dark2) => !dark2), setDark];
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
const getInitialState$
|
|
274
|
+
const getInitialState$3 = (query, defaultState) => {
|
|
275
275
|
if (defaultState !== void 0) {
|
|
276
276
|
return defaultState;
|
|
277
277
|
}
|
|
@@ -286,7 +286,7 @@ const getInitialState$2 = (query, defaultState) => {
|
|
|
286
286
|
return false;
|
|
287
287
|
};
|
|
288
288
|
function useMediaQuery(query, defaultState) {
|
|
289
|
-
const [state, setState] = useState(getInitialState$
|
|
289
|
+
const [state, setState] = useState(getInitialState$3(query, defaultState));
|
|
290
290
|
useEffect(() => {
|
|
291
291
|
var _a;
|
|
292
292
|
let mounted = true;
|
|
@@ -777,7 +777,7 @@ function baseIsNative(value) {
|
|
|
777
777
|
* @param {string} key The key of the property to get.
|
|
778
778
|
* @returns {*} Returns the property value.
|
|
779
779
|
*/
|
|
780
|
-
function getValue(object, key) {
|
|
780
|
+
function getValue$1(object, key) {
|
|
781
781
|
return object == null ? undefined : object[key];
|
|
782
782
|
}
|
|
783
783
|
|
|
@@ -790,7 +790,7 @@ function getValue(object, key) {
|
|
|
790
790
|
* @returns {*} Returns the function if it's native, else `undefined`.
|
|
791
791
|
*/
|
|
792
792
|
function getNative(object, key) {
|
|
793
|
-
var value = getValue(object, key);
|
|
793
|
+
var value = getValue$1(object, key);
|
|
794
794
|
return baseIsNative(value) ? value : undefined;
|
|
795
795
|
}
|
|
796
796
|
|
|
@@ -2865,7 +2865,7 @@ function useUpdate() {
|
|
|
2865
2865
|
return update;
|
|
2866
2866
|
}
|
|
2867
2867
|
|
|
2868
|
-
function useTimeoutFn(cb, interval, options = defaultOptions) {
|
|
2868
|
+
function useTimeoutFn(cb, interval, options = defaultOptions$1) {
|
|
2869
2869
|
const { immediate = true } = options;
|
|
2870
2870
|
const [pending, setPending] = useState(false);
|
|
2871
2871
|
const savedCallback = useLatest(cb);
|
|
@@ -2955,7 +2955,7 @@ function useLatestElement(target, defaultElement) {
|
|
|
2955
2955
|
return latestElement;
|
|
2956
2956
|
}
|
|
2957
2957
|
|
|
2958
|
-
function useEventListener(eventName, handler, element, options = defaultOptions) {
|
|
2958
|
+
function useEventListener(eventName, handler, element, options = defaultOptions$1) {
|
|
2959
2959
|
const savedHandler = useLatest(handler);
|
|
2960
2960
|
const targetElement = useLatestElement(element, defaultWindow);
|
|
2961
2961
|
useEffect(() => {
|
|
@@ -3112,7 +3112,7 @@ function useFavicon(href, baseUrl = "", rel = "icon") {
|
|
|
3112
3112
|
}, [baseUrl, href, rel]);
|
|
3113
3113
|
}
|
|
3114
3114
|
|
|
3115
|
-
function useMutationObserver(callback, target, options = defaultOptions) {
|
|
3115
|
+
function useMutationObserver(callback, target, options = defaultOptions$1) {
|
|
3116
3116
|
const callbackRef = useLatest(callback);
|
|
3117
3117
|
const observerRef = useRef();
|
|
3118
3118
|
const element = useLatestElement(target);
|
|
@@ -3181,7 +3181,7 @@ function useTitle(title) {
|
|
|
3181
3181
|
}, [title]);
|
|
3182
3182
|
}
|
|
3183
3183
|
|
|
3184
|
-
function useScriptTag(src, onLoaded = noop, options = defaultOptions) {
|
|
3184
|
+
function useScriptTag(src, onLoaded = noop, options = defaultOptions$1) {
|
|
3185
3185
|
const {
|
|
3186
3186
|
immediate = true,
|
|
3187
3187
|
manual = false,
|
|
@@ -3298,6 +3298,7 @@ function useScriptTag(src, onLoaded = noop, options = defaultOptions) {
|
|
|
3298
3298
|
function usePermission(permissionDesc) {
|
|
3299
3299
|
const [state, setState] = useState("");
|
|
3300
3300
|
useEffect(() => {
|
|
3301
|
+
var _a;
|
|
3301
3302
|
const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc;
|
|
3302
3303
|
let mounted = true;
|
|
3303
3304
|
let permissionStatus = null;
|
|
@@ -3306,11 +3307,11 @@ function usePermission(permissionDesc) {
|
|
|
3306
3307
|
return;
|
|
3307
3308
|
}
|
|
3308
3309
|
setState(() => {
|
|
3309
|
-
var
|
|
3310
|
-
return (
|
|
3310
|
+
var _a2;
|
|
3311
|
+
return (_a2 = permissionStatus == null ? void 0 : permissionStatus.state) != null ? _a2 : "";
|
|
3311
3312
|
});
|
|
3312
3313
|
};
|
|
3313
|
-
navigator.permissions.query(desc).then((status) => {
|
|
3314
|
+
(_a = navigator.permissions) == null ? void 0 : _a.query(desc).then((status) => {
|
|
3314
3315
|
permissionStatus = status;
|
|
3315
3316
|
on(permissionStatus, "change", onChange);
|
|
3316
3317
|
onChange();
|
|
@@ -3335,7 +3336,7 @@ const preventDefault$1 = (ev) => {
|
|
|
3335
3336
|
ev.preventDefault();
|
|
3336
3337
|
}
|
|
3337
3338
|
};
|
|
3338
|
-
function useLongPress(callback, { isPreventDefault = true, delay = 300 } = defaultOptions) {
|
|
3339
|
+
function useLongPress(callback, { isPreventDefault = true, delay = 300 } = defaultOptions$1) {
|
|
3339
3340
|
const timeout = useRef();
|
|
3340
3341
|
const target = useRef();
|
|
3341
3342
|
const start = useCallback(
|
|
@@ -3521,7 +3522,7 @@ function useMediaDevices(options = {}) {
|
|
|
3521
3522
|
return [state, ensurePermissions];
|
|
3522
3523
|
}
|
|
3523
3524
|
|
|
3524
|
-
function useTextDirection(options = defaultOptions) {
|
|
3525
|
+
function useTextDirection(options = defaultOptions$1) {
|
|
3525
3526
|
const { selector = "html", initialValue = "ltr" } = options;
|
|
3526
3527
|
const getValue = () => {
|
|
3527
3528
|
var _a, _b;
|
|
@@ -3548,18 +3549,18 @@ function useTextDirection(options = defaultOptions) {
|
|
|
3548
3549
|
}
|
|
3549
3550
|
|
|
3550
3551
|
const initState = {
|
|
3551
|
-
screenX: NaN,
|
|
3552
|
-
screenY: NaN,
|
|
3553
|
-
clientX: NaN,
|
|
3554
|
-
clientY: NaN,
|
|
3555
|
-
pageX: NaN,
|
|
3556
|
-
pageY: NaN,
|
|
3557
|
-
elementX: NaN,
|
|
3558
|
-
elementY: NaN,
|
|
3559
|
-
elementH: NaN,
|
|
3560
|
-
elementW: NaN,
|
|
3561
|
-
elementPosX: NaN,
|
|
3562
|
-
elementPosY: NaN
|
|
3552
|
+
screenX: Number.NaN,
|
|
3553
|
+
screenY: Number.NaN,
|
|
3554
|
+
clientX: Number.NaN,
|
|
3555
|
+
clientY: Number.NaN,
|
|
3556
|
+
pageX: Number.NaN,
|
|
3557
|
+
pageY: Number.NaN,
|
|
3558
|
+
elementX: Number.NaN,
|
|
3559
|
+
elementY: Number.NaN,
|
|
3560
|
+
elementH: Number.NaN,
|
|
3561
|
+
elementW: Number.NaN,
|
|
3562
|
+
elementPosX: Number.NaN,
|
|
3563
|
+
elementPosY: Number.NaN
|
|
3563
3564
|
};
|
|
3564
3565
|
function useMouse(target) {
|
|
3565
3566
|
const [state, setState] = useRafState(initState);
|
|
@@ -3574,12 +3575,12 @@ function useMouse(target) {
|
|
|
3574
3575
|
clientY,
|
|
3575
3576
|
pageX,
|
|
3576
3577
|
pageY,
|
|
3577
|
-
elementX: NaN,
|
|
3578
|
-
elementY: NaN,
|
|
3579
|
-
elementH: NaN,
|
|
3580
|
-
elementW: NaN,
|
|
3581
|
-
elementPosX: NaN,
|
|
3582
|
-
elementPosY: NaN
|
|
3578
|
+
elementX: Number.NaN,
|
|
3579
|
+
elementY: Number.NaN,
|
|
3580
|
+
elementH: Number.NaN,
|
|
3581
|
+
elementW: Number.NaN,
|
|
3582
|
+
elementPosX: Number.NaN,
|
|
3583
|
+
elementPosY: Number.NaN
|
|
3583
3584
|
};
|
|
3584
3585
|
const targetElement = getTargetElement(target);
|
|
3585
3586
|
if (targetElement) {
|
|
@@ -3598,7 +3599,7 @@ function useMouse(target) {
|
|
|
3598
3599
|
return state;
|
|
3599
3600
|
}
|
|
3600
3601
|
|
|
3601
|
-
function useFps(options = defaultOptions) {
|
|
3602
|
+
function useFps(options = defaultOptions$1) {
|
|
3602
3603
|
var _a;
|
|
3603
3604
|
const [fps, setFps] = useState(0);
|
|
3604
3605
|
const every = (_a = options.every) != null ? _a : 10;
|
|
@@ -3621,14 +3622,14 @@ var index$2 = typeof performance === "undefined" ? useFpsMock : useFps;
|
|
|
3621
3622
|
|
|
3622
3623
|
const initCoord = {
|
|
3623
3624
|
accuracy: 0,
|
|
3624
|
-
latitude:
|
|
3625
|
-
longitude:
|
|
3625
|
+
latitude: Number.POSITIVE_INFINITY,
|
|
3626
|
+
longitude: Number.POSITIVE_INFINITY,
|
|
3626
3627
|
altitude: null,
|
|
3627
3628
|
altitudeAccuracy: null,
|
|
3628
3629
|
heading: null,
|
|
3629
3630
|
speed: null
|
|
3630
3631
|
};
|
|
3631
|
-
function useGeolocation(options = defaultOptions) {
|
|
3632
|
+
function useGeolocation(options = defaultOptions$1) {
|
|
3632
3633
|
const {
|
|
3633
3634
|
enableHighAccuracy = true,
|
|
3634
3635
|
maximumAge = 3e4,
|
|
@@ -3854,7 +3855,7 @@ var screenfull$1 = {exports: {}};
|
|
|
3854
3855
|
|
|
3855
3856
|
var screenfull = screenfull$1.exports;
|
|
3856
3857
|
|
|
3857
|
-
function useFullscreen(target, options = defaultOptions) {
|
|
3858
|
+
function useFullscreen(target, options = defaultOptions$1) {
|
|
3858
3859
|
const { onExit, onEnter } = options;
|
|
3859
3860
|
const [state, setState] = useState(false);
|
|
3860
3861
|
const onChange = () => {
|
|
@@ -4006,7 +4007,7 @@ function useOrientation(initialState = defaultState$1) {
|
|
|
4006
4007
|
return [state, lockOrientation, unlockOrientation];
|
|
4007
4008
|
}
|
|
4008
4009
|
|
|
4009
|
-
function useIntersectionObserver(target, callback, options = defaultOptions) {
|
|
4010
|
+
function useIntersectionObserver(target, callback, options = defaultOptions$1) {
|
|
4010
4011
|
const savedCallback = useLatest(callback);
|
|
4011
4012
|
const observerRef = useRef();
|
|
4012
4013
|
const element = useLatestElement(target);
|
|
@@ -4044,7 +4045,7 @@ function usePageLeave() {
|
|
|
4044
4045
|
return isLeft;
|
|
4045
4046
|
}
|
|
4046
4047
|
|
|
4047
|
-
const getInitialState$
|
|
4048
|
+
const getInitialState$2 = (defaultValue) => {
|
|
4048
4049
|
if (defaultValue !== void 0) {
|
|
4049
4050
|
return defaultValue;
|
|
4050
4051
|
}
|
|
@@ -4060,7 +4061,7 @@ const getInitialState$1 = (defaultValue) => {
|
|
|
4060
4061
|
};
|
|
4061
4062
|
function useDocumentVisibility(defaultValue) {
|
|
4062
4063
|
const [visible, setVisible] = useState(
|
|
4063
|
-
getInitialState$
|
|
4064
|
+
getInitialState$2(defaultValue)
|
|
4064
4065
|
);
|
|
4065
4066
|
useEventListener(
|
|
4066
4067
|
"visibilitychange",
|
|
@@ -4075,7 +4076,7 @@ function useDocumentVisibility(defaultValue) {
|
|
|
4075
4076
|
return visible;
|
|
4076
4077
|
}
|
|
4077
4078
|
|
|
4078
|
-
function useResizeObserver(target, callback, options = defaultOptions) {
|
|
4079
|
+
function useResizeObserver(target, callback, options = defaultOptions$1) {
|
|
4079
4080
|
const savedCallback = useLatest(callback);
|
|
4080
4081
|
const observerRef = useRef();
|
|
4081
4082
|
const element = useLatestElement(target);
|
|
@@ -4160,7 +4161,7 @@ const DEFAULT_OPTIONS = {
|
|
|
4160
4161
|
multiple: true,
|
|
4161
4162
|
accept: "*"
|
|
4162
4163
|
};
|
|
4163
|
-
function useFileDialog(options = defaultOptions) {
|
|
4164
|
+
function useFileDialog(options = defaultOptions$1) {
|
|
4164
4165
|
const [files, setFiles] = useState(null);
|
|
4165
4166
|
const inputRef = useRef();
|
|
4166
4167
|
const initFn = useCallback(() => {
|
|
@@ -4200,7 +4201,7 @@ const defaultListerOptions = {
|
|
|
4200
4201
|
capture: false,
|
|
4201
4202
|
passive: true
|
|
4202
4203
|
};
|
|
4203
|
-
function useScroll(target, options = defaultOptions) {
|
|
4204
|
+
function useScroll(target, options = defaultOptions$1) {
|
|
4204
4205
|
const {
|
|
4205
4206
|
throttle = 0,
|
|
4206
4207
|
idle = 200,
|
|
@@ -4307,7 +4308,7 @@ var __async$3 = (__this, __arguments, generator) => {
|
|
|
4307
4308
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
4308
4309
|
});
|
|
4309
4310
|
};
|
|
4310
|
-
function useInfiniteScroll(target, onLoadMore, options = defaultOptions) {
|
|
4311
|
+
function useInfiniteScroll(target, onLoadMore, options = defaultOptions$1) {
|
|
4311
4312
|
var _a, _b;
|
|
4312
4313
|
const savedLoadMore = useLatest(onLoadMore);
|
|
4313
4314
|
const direction = (_a = options.direction) != null ? _a : "bottom";
|
|
@@ -4343,7 +4344,7 @@ const defaultEvents = [
|
|
|
4343
4344
|
"keydown",
|
|
4344
4345
|
"keyup"
|
|
4345
4346
|
];
|
|
4346
|
-
function useKeyModifier(modifier, options = defaultOptions) {
|
|
4347
|
+
function useKeyModifier(modifier, options = defaultOptions$1) {
|
|
4347
4348
|
const { events = defaultEvents, initial = false } = options;
|
|
4348
4349
|
const [state, setState] = useState(initial);
|
|
4349
4350
|
useMount(() => {
|
|
@@ -4368,7 +4369,7 @@ function useKeyModifier(modifier, options = defaultOptions) {
|
|
|
4368
4369
|
}
|
|
4369
4370
|
|
|
4370
4371
|
const listenerOptions$2 = { passive: true };
|
|
4371
|
-
function useMousePressed(target, options = defaultOptions) {
|
|
4372
|
+
function useMousePressed(target, options = defaultOptions$1) {
|
|
4372
4373
|
const { touch = true, drag = true, initialValue = false } = options;
|
|
4373
4374
|
const [pressed, setPressed] = useState(initialValue);
|
|
4374
4375
|
const [sourceType, setSourceType] = useState(null);
|
|
@@ -4475,7 +4476,7 @@ function useScrollLock(target, initialState = false) {
|
|
|
4475
4476
|
return [locked, set];
|
|
4476
4477
|
}
|
|
4477
4478
|
|
|
4478
|
-
function useElementSize(target, options = defaultOptions) {
|
|
4479
|
+
function useElementSize(target, options = defaultOptions$1) {
|
|
4479
4480
|
const { box = "content-box" } = options;
|
|
4480
4481
|
const [width, setWidth] = useState(0);
|
|
4481
4482
|
const [height, setHeight] = useState(0);
|
|
@@ -4715,7 +4716,7 @@ function useDraggable(target, options = {}) {
|
|
|
4715
4716
|
return [position.x, position.y, !!pressedDelta];
|
|
4716
4717
|
}
|
|
4717
4718
|
|
|
4718
|
-
function useElementBounding(target, options = defaultOptions) {
|
|
4719
|
+
function useElementBounding(target, options = defaultOptions$1) {
|
|
4719
4720
|
const {
|
|
4720
4721
|
reset = true,
|
|
4721
4722
|
windowResize = true,
|
|
@@ -4790,7 +4791,7 @@ function useElementBounding(target, options = defaultOptions) {
|
|
|
4790
4791
|
};
|
|
4791
4792
|
}
|
|
4792
4793
|
|
|
4793
|
-
function useElementVisibility(target, options = defaultOptions) {
|
|
4794
|
+
function useElementVisibility(target, options = defaultOptions$1) {
|
|
4794
4795
|
const [visible, setVisible] = useState(false);
|
|
4795
4796
|
const callback = useCallback((entries) => {
|
|
4796
4797
|
const rect = entries[0].boundingClientRect;
|
|
@@ -5126,7 +5127,7 @@ function useScrollIntoView(targetElement, {
|
|
|
5126
5127
|
offset = 0,
|
|
5127
5128
|
cancelable = true,
|
|
5128
5129
|
isList = false
|
|
5129
|
-
} = defaultOptions, scrollElement) {
|
|
5130
|
+
} = defaultOptions$1, scrollElement) {
|
|
5130
5131
|
const frameID = useRef(0);
|
|
5131
5132
|
const startTime = useRef(0);
|
|
5132
5133
|
const shouldStop = useRef(false);
|
|
@@ -5137,48 +5138,48 @@ function useScrollIntoView(targetElement, {
|
|
|
5137
5138
|
}
|
|
5138
5139
|
};
|
|
5139
5140
|
const element = useLatestElement(targetElement);
|
|
5140
|
-
const scrollIntoView =
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5141
|
+
const scrollIntoView = ({
|
|
5142
|
+
alignment = "start"
|
|
5143
|
+
} = {}) => {
|
|
5144
|
+
var _a;
|
|
5145
|
+
const parent = getTargetElement(scrollElement) || getScrollParent(axis, element);
|
|
5146
|
+
shouldStop.current = false;
|
|
5147
|
+
if (frameID.current) {
|
|
5148
|
+
cancel();
|
|
5149
|
+
}
|
|
5150
|
+
const start = (_a = getScrollStart({ parent, axis })) != null ? _a : 0;
|
|
5151
|
+
const change = getRelativePosition({
|
|
5152
|
+
parent,
|
|
5153
|
+
target: element,
|
|
5154
|
+
axis,
|
|
5155
|
+
alignment,
|
|
5156
|
+
offset,
|
|
5157
|
+
isList
|
|
5158
|
+
}) - (parent ? 0 : start);
|
|
5159
|
+
const animateScroll = () => {
|
|
5160
|
+
if (startTime.current === 0) {
|
|
5161
|
+
startTime.current = performance.now();
|
|
5147
5162
|
}
|
|
5148
|
-
const
|
|
5149
|
-
const
|
|
5163
|
+
const now = performance.now();
|
|
5164
|
+
const elapsed = now - startTime.current;
|
|
5165
|
+
const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;
|
|
5166
|
+
const distance = start + change * easing(t);
|
|
5167
|
+
setScrollParam({
|
|
5150
5168
|
parent,
|
|
5151
|
-
target: element,
|
|
5152
5169
|
axis,
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
parent,
|
|
5167
|
-
axis,
|
|
5168
|
-
distance
|
|
5169
|
-
});
|
|
5170
|
-
if (!shouldStop.current && t < 1) {
|
|
5171
|
-
frameID.current = requestAnimationFrame(animateScroll);
|
|
5172
|
-
} else {
|
|
5173
|
-
typeof onScrollFinish === "function" && onScrollFinish();
|
|
5174
|
-
startTime.current = 0;
|
|
5175
|
-
frameID.current = 0;
|
|
5176
|
-
cancel();
|
|
5177
|
-
}
|
|
5178
|
-
};
|
|
5179
|
-
animateScroll();
|
|
5180
|
-
}
|
|
5181
|
-
);
|
|
5170
|
+
distance
|
|
5171
|
+
});
|
|
5172
|
+
if (!shouldStop.current && t < 1) {
|
|
5173
|
+
frameID.current = requestAnimationFrame(animateScroll);
|
|
5174
|
+
} else {
|
|
5175
|
+
typeof onScrollFinish === "function" && onScrollFinish();
|
|
5176
|
+
startTime.current = 0;
|
|
5177
|
+
frameID.current = 0;
|
|
5178
|
+
cancel();
|
|
5179
|
+
}
|
|
5180
|
+
};
|
|
5181
|
+
animateScroll();
|
|
5182
|
+
};
|
|
5182
5183
|
const handleStop = () => {
|
|
5183
5184
|
if (cancelable) {
|
|
5184
5185
|
shouldStop.current = true;
|
|
@@ -5477,7 +5478,7 @@ function init (converter, defaultAttributes) {
|
|
|
5477
5478
|
|
|
5478
5479
|
var api = init(defaultConverter, { path: '/' });
|
|
5479
5480
|
|
|
5480
|
-
const getInitialState = (key, defaultValue) => {
|
|
5481
|
+
const getInitialState$1 = (key, defaultValue) => {
|
|
5481
5482
|
if (defaultValue !== void 0) {
|
|
5482
5483
|
return defaultValue;
|
|
5483
5484
|
}
|
|
@@ -5491,9 +5492,9 @@ const getInitialState = (key, defaultValue) => {
|
|
|
5491
5492
|
}
|
|
5492
5493
|
return "";
|
|
5493
5494
|
};
|
|
5494
|
-
function useCookie(key, options = defaultOptions, defaultValue) {
|
|
5495
|
+
function useCookie(key, options = defaultOptions$1, defaultValue) {
|
|
5495
5496
|
const [cookieValue, setCookieValue] = useState(
|
|
5496
|
-
getInitialState(key, defaultValue)
|
|
5497
|
+
getInitialState$1(key, defaultValue)
|
|
5497
5498
|
);
|
|
5498
5499
|
useEffect(() => {
|
|
5499
5500
|
const getStoredValue = () => {
|
|
@@ -5603,7 +5604,7 @@ const defaultState = {
|
|
|
5603
5604
|
bottom: 0,
|
|
5604
5605
|
right: 0
|
|
5605
5606
|
};
|
|
5606
|
-
function useMeasure(target, options = defaultOptions) {
|
|
5607
|
+
function useMeasure(target, options = defaultOptions$1) {
|
|
5607
5608
|
const [rect, setRect] = useState(defaultState);
|
|
5608
5609
|
const stop = useResizeObserver(
|
|
5609
5610
|
target,
|
|
@@ -5627,4 +5628,109 @@ function useHover(target) {
|
|
|
5627
5628
|
return hovered;
|
|
5628
5629
|
}
|
|
5629
5630
|
|
|
5630
|
-
|
|
5631
|
+
const defaultOptions = {
|
|
5632
|
+
observe: false
|
|
5633
|
+
};
|
|
5634
|
+
const getInitialState = (defaultValue) => {
|
|
5635
|
+
if (defaultValue !== void 0) {
|
|
5636
|
+
return defaultValue;
|
|
5637
|
+
}
|
|
5638
|
+
if (isBrowser) {
|
|
5639
|
+
return "";
|
|
5640
|
+
}
|
|
5641
|
+
if (process.env.NODE_ENV !== "production") {
|
|
5642
|
+
console.warn(
|
|
5643
|
+
"`useCssVar` When server side rendering, defaultValue should be defined to prevent a hydration mismatches."
|
|
5644
|
+
);
|
|
5645
|
+
}
|
|
5646
|
+
return "";
|
|
5647
|
+
};
|
|
5648
|
+
function useCssVar(prop, target, defaultValue, options = defaultOptions) {
|
|
5649
|
+
const { observe } = options;
|
|
5650
|
+
const [variable, setVariable] = useState(
|
|
5651
|
+
getInitialState(defaultValue)
|
|
5652
|
+
);
|
|
5653
|
+
const element = useLatestElement(target);
|
|
5654
|
+
const observerRef = useRef();
|
|
5655
|
+
const set = useCallback(
|
|
5656
|
+
(v) => {
|
|
5657
|
+
if (element == null ? void 0 : element.style) {
|
|
5658
|
+
element == null ? void 0 : element.style.setProperty(prop, v);
|
|
5659
|
+
setVariable(v);
|
|
5660
|
+
}
|
|
5661
|
+
},
|
|
5662
|
+
[element, prop]
|
|
5663
|
+
);
|
|
5664
|
+
const updateCssVar = useCallback(() => {
|
|
5665
|
+
var _a;
|
|
5666
|
+
if (element) {
|
|
5667
|
+
const value = (_a = window.getComputedStyle(element).getPropertyValue(prop)) == null ? void 0 : _a.trim();
|
|
5668
|
+
setVariable(value);
|
|
5669
|
+
}
|
|
5670
|
+
}, [element, prop]);
|
|
5671
|
+
useEffect(() => {
|
|
5672
|
+
var _a;
|
|
5673
|
+
if (!element) {
|
|
5674
|
+
return;
|
|
5675
|
+
}
|
|
5676
|
+
const value = (_a = window.getComputedStyle(element).getPropertyValue(prop)) == null ? void 0 : _a.trim();
|
|
5677
|
+
if (!value && defaultValue) {
|
|
5678
|
+
set(defaultValue);
|
|
5679
|
+
} else {
|
|
5680
|
+
updateCssVar();
|
|
5681
|
+
}
|
|
5682
|
+
if (!observe) {
|
|
5683
|
+
return;
|
|
5684
|
+
}
|
|
5685
|
+
observerRef.current = new MutationObserver(updateCssVar);
|
|
5686
|
+
observerRef.current.observe(element, {
|
|
5687
|
+
attributeFilter: ["style", "class"]
|
|
5688
|
+
});
|
|
5689
|
+
return () => {
|
|
5690
|
+
if (observerRef.current) {
|
|
5691
|
+
observerRef.current.disconnect();
|
|
5692
|
+
}
|
|
5693
|
+
};
|
|
5694
|
+
}, [observe, element, updateCssVar, set, defaultValue, prop]);
|
|
5695
|
+
return [variable, set];
|
|
5696
|
+
}
|
|
5697
|
+
|
|
5698
|
+
const topVarName = "--reactuse-safe-area-top";
|
|
5699
|
+
const rightVarName = "--reactuse-safe-area-right";
|
|
5700
|
+
const bottomVarName = "--reactuse-safe-area-bottom";
|
|
5701
|
+
const leftVarName = "--reactuse-safe-area-left";
|
|
5702
|
+
const defaultElement = () => document.documentElement;
|
|
5703
|
+
function useScreenSafeArea() {
|
|
5704
|
+
const top = useRef("");
|
|
5705
|
+
const right = useRef("");
|
|
5706
|
+
const bottom = useRef("");
|
|
5707
|
+
const left = useRef("");
|
|
5708
|
+
const forceUpdate = useUpdate();
|
|
5709
|
+
useCssVar(topVarName, defaultElement, "env(safe-area-inset-top, 0px)");
|
|
5710
|
+
useCssVar(rightVarName, defaultElement, "env(safe-area-inset-right, 0px)");
|
|
5711
|
+
useCssVar(bottomVarName, defaultElement, "env(safe-area-inset-bottom, 0px)");
|
|
5712
|
+
useCssVar(leftVarName, defaultElement, "env(safe-area-inset-left, 0px)");
|
|
5713
|
+
const { run: update } = useDebounceFn(() => {
|
|
5714
|
+
top.current = getValue(topVarName);
|
|
5715
|
+
right.current = getValue(rightVarName);
|
|
5716
|
+
bottom.current = getValue(bottomVarName);
|
|
5717
|
+
left.current = getValue(leftVarName);
|
|
5718
|
+
forceUpdate();
|
|
5719
|
+
});
|
|
5720
|
+
useEffect(() => {
|
|
5721
|
+
update();
|
|
5722
|
+
}, [update]);
|
|
5723
|
+
useEventListener("resize", update);
|
|
5724
|
+
return [
|
|
5725
|
+
top.current,
|
|
5726
|
+
right.current,
|
|
5727
|
+
bottom.current,
|
|
5728
|
+
left.current,
|
|
5729
|
+
update
|
|
5730
|
+
];
|
|
5731
|
+
}
|
|
5732
|
+
function getValue(position) {
|
|
5733
|
+
return getComputedStyle(document.documentElement).getPropertyValue(position);
|
|
5734
|
+
}
|
|
5735
|
+
|
|
5736
|
+
export { getHMSTime, useActiveElement, useAsyncEffect, useClickOutside, useClipBorad as useClipboard, useControlled, useCookie, useCountDown, useCounter, useCssVar, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDoubleClick, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useEyeDropper, useFavicon, useFileDialog, useFirstMountState, useFocus, index$2 as useFps, useFullscreen, useGeolocation, useHover, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLongPress, useMeasure, useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, index$1 as useOnceEffect, index as useOnceLayoutEffect, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useReducedMotion, useResizeObserver, useScreenSafeArea, useScriptTag, useScroll, useScrollIntoView, useScrollLock, useSessionStorage, useSetState, useSticky, useSupported, useTextDirection, useTextSelection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, useUpdateEffect, index$3 as useUpdateLayoutEffect, useVirtualList, useWindowScroll, useWindowSize, useWindowsFocus };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reactuses/core",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.8",
|
|
4
4
|
"license": "Unlicense",
|
|
5
5
|
"homepage": "https://www.reactuse.com/",
|
|
6
6
|
"repository": {
|
|
@@ -57,6 +57,9 @@
|
|
|
57
57
|
"screenfull": "^5.0.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
+
"@types/js-cookie": "^3.0.3",
|
|
61
|
+
"@types/lodash": "^4.14.184",
|
|
62
|
+
"@types/lodash-es": "^4.17.7",
|
|
60
63
|
"@jsdevtools/version-bump-prompt": "^6.1.0",
|
|
61
64
|
"@rollup/plugin-commonjs": "^22.0.2",
|
|
62
65
|
"@rollup/plugin-json": "^4.1.0",
|