@mui/utils 5.15.14 → 6.0.0-alpha.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/CHANGELOG.md +323 -5
- package/getDisplayName/getDisplayName.d.ts +0 -1
- package/getDisplayName/getDisplayName.js +1 -10
- package/getDisplayName/index.d.ts +0 -1
- package/getDisplayName/index.js +1 -2
- package/index.js +1 -1
- package/integerPropType/integerPropType.js +1 -8
- package/isMuiElement/isMuiElement.js +3 -3
- package/modern/getDisplayName/getDisplayName.js +1 -10
- package/modern/getDisplayName/index.js +1 -2
- package/modern/index.js +1 -1
- package/modern/integerPropType/integerPropType.js +1 -8
- package/node/debounce/index.js +1 -1
- package/node/deepmerge/index.js +1 -1
- package/node/generateUtilityClass/index.js +1 -1
- package/node/getDisplayName/getDisplayName.js +1 -10
- package/node/getDisplayName/index.js +2 -15
- package/node/getValidReactChildren/getValidReactChildren.js +1 -1
- package/node/index.js +2 -2
- package/node/integerPropType/index.js +1 -1
- package/node/integerPropType/integerPropType.js +1 -8
- package/node/isMuiElement/isMuiElement.js +1 -1
- package/node/useControlled/useControlled.js +1 -1
- package/node/useEnhancedEffect/useEnhancedEffect.js +1 -1
- package/node/useEventCallback/useEventCallback.js +1 -1
- package/node/useForkRef/useForkRef.js +1 -1
- package/node/useId/useId.js +1 -1
- package/node/useIsFocusVisible/index.js +1 -1
- package/node/useIsFocusVisible/useIsFocusVisible.js +1 -1
- package/node/useLazyRef/useLazyRef.js +1 -1
- package/node/useLocalStorageState/useLocalStorageState.js +1 -1
- package/node/useOnMount/useOnMount.js +1 -1
- package/node/usePreviousProps/usePreviousProps.js +1 -1
- package/node/useTimeout/index.js +1 -1
- package/package.json +3 -3
- package/requirePropFactory/requirePropFactory.js +1 -1
- package/useId/useId.js +1 -1
- package/useLocalStorageState/useLocalStorageState.js +1 -4
- package/legacy/ClassNameGenerator/ClassNameGenerator.js +0 -19
- package/legacy/ClassNameGenerator/index.js +0 -1
- package/legacy/HTMLElementType/HTMLElementType.js +0 -14
- package/legacy/HTMLElementType/index.js +0 -1
- package/legacy/capitalize/capitalize.js +0 -11
- package/legacy/capitalize/index.js +0 -1
- package/legacy/chainPropTypes/chainPropTypes.js +0 -10
- package/legacy/chainPropTypes/index.js +0 -1
- package/legacy/clamp/clamp.js +0 -6
- package/legacy/clamp/index.js +0 -1
- package/legacy/composeClasses/composeClasses.js +0 -22
- package/legacy/composeClasses/index.js +0 -1
- package/legacy/createChainedFunction/createChainedFunction.js +0 -23
- package/legacy/createChainedFunction/index.js +0 -1
- package/legacy/debounce/debounce.js +0 -22
- package/legacy/debounce/index.js +0 -2
- package/legacy/deepmerge/deepmerge.js +0 -43
- package/legacy/deepmerge/index.js +0 -2
- package/legacy/deprecatedPropType/deprecatedPropType.js +0 -15
- package/legacy/deprecatedPropType/index.js +0 -1
- package/legacy/elementAcceptingRef/elementAcceptingRef.js +0 -41
- package/legacy/elementAcceptingRef/index.js +0 -1
- package/legacy/elementTypeAcceptingRef/elementTypeAcceptingRef.js +0 -39
- package/legacy/elementTypeAcceptingRef/index.js +0 -1
- package/legacy/exactProp/exactProp.js +0 -23
- package/legacy/exactProp/index.js +0 -1
- package/legacy/formatMuiErrorMessage/formatMuiErrorMessage.js +0 -19
- package/legacy/formatMuiErrorMessage/index.js +0 -1
- package/legacy/generateUtilityClass/generateUtilityClass.js +0 -23
- package/legacy/generateUtilityClass/index.js +0 -2
- package/legacy/generateUtilityClasses/generateUtilityClasses.js +0 -9
- package/legacy/generateUtilityClasses/index.js +0 -1
- package/legacy/getDisplayName/getDisplayName.js +0 -49
- package/legacy/getDisplayName/index.js +0 -2
- package/legacy/getScrollbarSize/getScrollbarSize.js +0 -7
- package/legacy/getScrollbarSize/index.js +0 -1
- package/legacy/getValidReactChildren/getValidReactChildren.js +0 -13
- package/legacy/getValidReactChildren/index.js +0 -1
- package/legacy/index.js +0 -51
- package/legacy/integerPropType/index.js +0 -2
- package/legacy/integerPropType/integerPropType.js +0 -55
- package/legacy/isMuiElement/index.js +0 -1
- package/legacy/isMuiElement/isMuiElement.js +0 -8
- package/legacy/ownerDocument/index.js +0 -1
- package/legacy/ownerDocument/ownerDocument.js +0 -3
- package/legacy/ownerWindow/index.js +0 -1
- package/legacy/ownerWindow/ownerWindow.js +0 -5
- package/legacy/ponyfillGlobal/index.js +0 -1
- package/legacy/ponyfillGlobal/ponyfillGlobal.js +0 -3
- package/legacy/refType/index.js +0 -1
- package/legacy/refType/refType.js +0 -3
- package/legacy/requirePropFactory/index.js +0 -1
- package/legacy/requirePropFactory/requirePropFactory.js +0 -31
- package/legacy/resolveProps/index.js +0 -1
- package/legacy/resolveProps/resolveProps.js +0 -34
- package/legacy/scrollLeft/index.js +0 -1
- package/legacy/scrollLeft/scrollLeft.js +0 -70
- package/legacy/setRef/index.js +0 -1
- package/legacy/setRef/setRef.js +0 -20
- package/legacy/unsupportedProp/index.js +0 -1
- package/legacy/unsupportedProp/unsupportedProp.js +0 -10
- package/legacy/useControlled/index.js +0 -1
- package/legacy/useControlled/useControlled.js +0 -38
- package/legacy/useEnhancedEffect/index.js +0 -1
- package/legacy/useEnhancedEffect/useEnhancedEffect.js +0 -13
- package/legacy/useEventCallback/index.js +0 -1
- package/legacy/useEventCallback/useEventCallback.js +0 -23
- package/legacy/useForkRef/index.js +0 -1
- package/legacy/useForkRef/useForkRef.js +0 -27
- package/legacy/useId/index.js +0 -1
- package/legacy/useId/useId.js +0 -38
- package/legacy/useIsFocusVisible/index.js +0 -2
- package/legacy/useIsFocusVisible/useIsFocusVisible.js +0 -160
- package/legacy/useLazyRef/index.js +0 -1
- package/legacy/useLazyRef/useLazyRef.js +0 -19
- package/legacy/useLocalStorageState/index.js +0 -1
- package/legacy/useLocalStorageState/useLocalStorageState.js +0 -121
- package/legacy/useOnMount/index.js +0 -1
- package/legacy/useOnMount/useOnMount.js +0 -13
- package/legacy/usePreviousProps/index.js +0 -1
- package/legacy/usePreviousProps/usePreviousProps.js +0 -11
- package/legacy/useTimeout/index.js +0 -2
- package/legacy/useTimeout/useTimeout.js +0 -48
- package/legacy/visuallyHidden/index.js +0 -1
- package/legacy/visuallyHidden/visuallyHidden.js +0 -12
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import { Timeout } from '../useTimeout/useTimeout';
|
|
6
|
-
var hadKeyboardEvent = true;
|
|
7
|
-
var hadFocusVisibleRecently = false;
|
|
8
|
-
var hadFocusVisibleRecentlyTimeout = new Timeout();
|
|
9
|
-
var inputTypesWhitelist = {
|
|
10
|
-
text: true,
|
|
11
|
-
search: true,
|
|
12
|
-
url: true,
|
|
13
|
-
tel: true,
|
|
14
|
-
email: true,
|
|
15
|
-
password: true,
|
|
16
|
-
number: true,
|
|
17
|
-
date: true,
|
|
18
|
-
month: true,
|
|
19
|
-
week: true,
|
|
20
|
-
time: true,
|
|
21
|
-
datetime: true,
|
|
22
|
-
'datetime-local': true
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Computes whether the given element should automatically trigger the
|
|
27
|
-
* `focus-visible` class being added, i.e. whether it should always match
|
|
28
|
-
* `:focus-visible` when focused.
|
|
29
|
-
* @param {Element} node
|
|
30
|
-
* @returns {boolean}
|
|
31
|
-
*/
|
|
32
|
-
function focusTriggersKeyboardModality(node) {
|
|
33
|
-
var _ref = node,
|
|
34
|
-
type = _ref.type,
|
|
35
|
-
tagName = _ref.tagName;
|
|
36
|
-
if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
if (tagName === 'TEXTAREA' && !node.readOnly) {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
if (node.isContentEditable) {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Keep track of our keyboard modality state with `hadKeyboardEvent`.
|
|
50
|
-
* If the most recent user interaction was via the keyboard;
|
|
51
|
-
* and the key press did not include a meta, alt/option, or control key;
|
|
52
|
-
* then the modality is keyboard. Otherwise, the modality is not keyboard.
|
|
53
|
-
* @param {KeyboardEvent} event
|
|
54
|
-
*/
|
|
55
|
-
function handleKeyDown(event) {
|
|
56
|
-
if (event.metaKey || event.altKey || event.ctrlKey) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
hadKeyboardEvent = true;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* If at any point a user clicks with a pointing device, ensure that we change
|
|
64
|
-
* the modality away from keyboard.
|
|
65
|
-
* This avoids the situation where a user presses a key on an already focused
|
|
66
|
-
* element, and then clicks on a different element, focusing it with a
|
|
67
|
-
* pointing device, while we still think we're in keyboard modality.
|
|
68
|
-
*/
|
|
69
|
-
function handlePointerDown() {
|
|
70
|
-
hadKeyboardEvent = false;
|
|
71
|
-
}
|
|
72
|
-
function handleVisibilityChange() {
|
|
73
|
-
if (this.visibilityState === 'hidden') {
|
|
74
|
-
// If the tab becomes active again, the browser will handle calling focus
|
|
75
|
-
// on the element (Safari actually calls it twice).
|
|
76
|
-
// If this tab change caused a blur on an element with focus-visible,
|
|
77
|
-
// re-apply the class when the user switches back to the tab.
|
|
78
|
-
if (hadFocusVisibleRecently) {
|
|
79
|
-
hadKeyboardEvent = true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function prepare(doc) {
|
|
84
|
-
doc.addEventListener('keydown', handleKeyDown, true);
|
|
85
|
-
doc.addEventListener('mousedown', handlePointerDown, true);
|
|
86
|
-
doc.addEventListener('pointerdown', handlePointerDown, true);
|
|
87
|
-
doc.addEventListener('touchstart', handlePointerDown, true);
|
|
88
|
-
doc.addEventListener('visibilitychange', handleVisibilityChange, true);
|
|
89
|
-
}
|
|
90
|
-
export function teardown(doc) {
|
|
91
|
-
doc.removeEventListener('keydown', handleKeyDown, true);
|
|
92
|
-
doc.removeEventListener('mousedown', handlePointerDown, true);
|
|
93
|
-
doc.removeEventListener('pointerdown', handlePointerDown, true);
|
|
94
|
-
doc.removeEventListener('touchstart', handlePointerDown, true);
|
|
95
|
-
doc.removeEventListener('visibilitychange', handleVisibilityChange, true);
|
|
96
|
-
}
|
|
97
|
-
function isFocusVisible(event) {
|
|
98
|
-
var target = event.target;
|
|
99
|
-
try {
|
|
100
|
-
return target.matches(':focus-visible');
|
|
101
|
-
} catch (error) {
|
|
102
|
-
// Browsers not implementing :focus-visible will throw a SyntaxError.
|
|
103
|
-
// We use our own heuristic for those browsers.
|
|
104
|
-
// Rethrow might be better if it's not the expected error but do we really
|
|
105
|
-
// want to crash if focus-visible malfunctioned?
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// No need for validFocusTarget check. The user does that by attaching it to
|
|
109
|
-
// focusable events only.
|
|
110
|
-
return hadKeyboardEvent || focusTriggersKeyboardModality(target);
|
|
111
|
-
}
|
|
112
|
-
export default function useIsFocusVisible() {
|
|
113
|
-
var ref = React.useCallback(function (node) {
|
|
114
|
-
if (node != null) {
|
|
115
|
-
prepare(node.ownerDocument);
|
|
116
|
-
}
|
|
117
|
-
}, []);
|
|
118
|
-
var isFocusVisibleRef = React.useRef(false);
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Should be called if a blur event is fired
|
|
122
|
-
*/
|
|
123
|
-
function handleBlurVisible() {
|
|
124
|
-
// checking against potential state variable does not suffice if we focus and blur synchronously.
|
|
125
|
-
// React wouldn't have time to trigger a re-render so `focusVisible` would be stale.
|
|
126
|
-
// Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.
|
|
127
|
-
// This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751
|
|
128
|
-
// TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).
|
|
129
|
-
if (isFocusVisibleRef.current) {
|
|
130
|
-
// To detect a tab/window switch, we look for a blur event followed
|
|
131
|
-
// rapidly by a visibility change.
|
|
132
|
-
// If we don't see a visibility change within 100ms, it's probably a
|
|
133
|
-
// regular focus change.
|
|
134
|
-
hadFocusVisibleRecently = true;
|
|
135
|
-
hadFocusVisibleRecentlyTimeout.start(100, function () {
|
|
136
|
-
hadFocusVisibleRecently = false;
|
|
137
|
-
});
|
|
138
|
-
isFocusVisibleRef.current = false;
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Should be called if a blur event is fired
|
|
146
|
-
*/
|
|
147
|
-
function handleFocusVisible(event) {
|
|
148
|
-
if (isFocusVisible(event)) {
|
|
149
|
-
isFocusVisibleRef.current = true;
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
isFocusVisibleRef: isFocusVisibleRef,
|
|
156
|
-
onFocus: handleFocusVisible,
|
|
157
|
-
onBlur: handleBlurVisible,
|
|
158
|
-
ref: ref
|
|
159
|
-
};
|
|
160
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './useLazyRef';
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
var UNINITIALIZED = {};
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* A React.useRef() that is initialized lazily with a function. Note that it accepts an optional
|
|
8
|
-
* initialization argument, so the initialization function doesn't need to be an inline closure.
|
|
9
|
-
*
|
|
10
|
-
* @usage
|
|
11
|
-
* const ref = useLazyRef(sortColumns, columns)
|
|
12
|
-
*/
|
|
13
|
-
export default function useLazyRef(init, initArg) {
|
|
14
|
-
var ref = React.useRef(UNINITIALIZED);
|
|
15
|
-
if (ref.current === UNINITIALIZED) {
|
|
16
|
-
ref.current = init(initArg);
|
|
17
|
-
}
|
|
18
|
-
return ref;
|
|
19
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './useLocalStorageState';
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
// storage events only work across tabs, we'll use an event emitter to announce within the current tab
|
|
6
|
-
var currentTabChangeListeners = new Map();
|
|
7
|
-
function onCurrentTabStorageChange(key, handler) {
|
|
8
|
-
var listeners = currentTabChangeListeners.get(key);
|
|
9
|
-
if (!listeners) {
|
|
10
|
-
listeners = new Set();
|
|
11
|
-
currentTabChangeListeners.set(key, listeners);
|
|
12
|
-
}
|
|
13
|
-
listeners.add(handler);
|
|
14
|
-
}
|
|
15
|
-
function offCurrentTabStorageChange(key, handler) {
|
|
16
|
-
var listeners = currentTabChangeListeners.get(key);
|
|
17
|
-
if (!listeners) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
listeners.delete(handler);
|
|
21
|
-
if (listeners.size === 0) {
|
|
22
|
-
currentTabChangeListeners.delete(key);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function emitCurrentTabStorageChange(key) {
|
|
26
|
-
var listeners = currentTabChangeListeners.get(key);
|
|
27
|
-
if (listeners) {
|
|
28
|
-
listeners.forEach(function (listener) {
|
|
29
|
-
return listener();
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function subscribe(area, key, callbark) {
|
|
34
|
-
if (!key) {
|
|
35
|
-
return function () {};
|
|
36
|
-
}
|
|
37
|
-
var storageHandler = function storageHandler(event) {
|
|
38
|
-
if (event.storageArea === area && event.key === key) {
|
|
39
|
-
callbark();
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
window.addEventListener('storage', storageHandler);
|
|
43
|
-
onCurrentTabStorageChange(key, callbark);
|
|
44
|
-
return function () {
|
|
45
|
-
window.removeEventListener('storage', storageHandler);
|
|
46
|
-
offCurrentTabStorageChange(key, callbark);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function getSnapshot(area, key) {
|
|
50
|
-
if (!key) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
try {
|
|
54
|
-
return area.getItem(key);
|
|
55
|
-
} catch (_unused) {
|
|
56
|
-
// ignore
|
|
57
|
-
// See https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API#feature-detecting_localstorage
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function setValue(area, key, value) {
|
|
62
|
-
if (!key) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
try {
|
|
66
|
-
if (value === null) {
|
|
67
|
-
area.removeItem(key);
|
|
68
|
-
} else {
|
|
69
|
-
area.setItem(key, String(value));
|
|
70
|
-
}
|
|
71
|
-
} catch (_unused2) {
|
|
72
|
-
// ignore
|
|
73
|
-
// See https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API#feature-detecting_localstorage
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
emitCurrentTabStorageChange(key);
|
|
77
|
-
}
|
|
78
|
-
var serverValue = [null, function () {}];
|
|
79
|
-
function useLocalStorageStateServer() {
|
|
80
|
-
return serverValue;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Sync state to local storage so that it persists through a page refresh. Usage is
|
|
85
|
-
* similar to useState except we pass in a storage key so that we can default
|
|
86
|
-
* to that value on page load instead of the specified initial value.
|
|
87
|
-
*
|
|
88
|
-
* Since the storage API isn't available in server-rendering environments, we
|
|
89
|
-
* return null during SSR and hydration.
|
|
90
|
-
*/
|
|
91
|
-
function useLocalStorageStateBrowser(key) {
|
|
92
|
-
var initializer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
93
|
-
var _React$useState = React.useState(initializer),
|
|
94
|
-
initialValue = _React$useState[0];
|
|
95
|
-
var area = window.localStorage;
|
|
96
|
-
var subscribeKey = React.useCallback(function (callbark) {
|
|
97
|
-
return subscribe(area, key, callbark);
|
|
98
|
-
}, [area, key]);
|
|
99
|
-
var getKeySnapshot = React.useCallback(function () {
|
|
100
|
-
var _getSnapshot;
|
|
101
|
-
return (_getSnapshot = getSnapshot(area, key)) != null ? _getSnapshot : initialValue;
|
|
102
|
-
}, [area, initialValue, key]);
|
|
103
|
-
|
|
104
|
-
// Start with null for the hydration, and then switch to the actual value.
|
|
105
|
-
var getKeyServerSnapshot = function getKeyServerSnapshot() {
|
|
106
|
-
return null;
|
|
107
|
-
};
|
|
108
|
-
var storedValue = React.useSyncExternalStore(subscribeKey, getKeySnapshot, getKeyServerSnapshot);
|
|
109
|
-
var setStoredValue = React.useCallback(function (value) {
|
|
110
|
-
var valueToStore = value instanceof Function ? value(storedValue) : value;
|
|
111
|
-
setValue(area, key, valueToStore);
|
|
112
|
-
}, [area, key, storedValue]);
|
|
113
|
-
var _React$useState2 = React.useState(initialValue),
|
|
114
|
-
nonStoredValue = _React$useState2[0],
|
|
115
|
-
setNonStoredValue = _React$useState2[1];
|
|
116
|
-
if (!key) {
|
|
117
|
-
return [nonStoredValue, setNonStoredValue];
|
|
118
|
-
}
|
|
119
|
-
return [storedValue, setStoredValue];
|
|
120
|
-
}
|
|
121
|
-
export default typeof window === 'undefined' ? useLocalStorageStateServer : useLocalStorageStateBrowser;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './useOnMount';
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
var EMPTY = [];
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* A React.useEffect equivalent that runs once, when the component is mounted.
|
|
8
|
-
*/
|
|
9
|
-
export default function useOnMount(fn) {
|
|
10
|
-
/* eslint-disable react-hooks/exhaustive-deps */
|
|
11
|
-
React.useEffect(fn, EMPTY);
|
|
12
|
-
/* eslint-enable react-hooks/exhaustive-deps */
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './usePreviousProps';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
var usePreviousProps = function usePreviousProps(value) {
|
|
5
|
-
var ref = React.useRef({});
|
|
6
|
-
React.useEffect(function () {
|
|
7
|
-
ref.current = value;
|
|
8
|
-
});
|
|
9
|
-
return ref.current;
|
|
10
|
-
};
|
|
11
|
-
export default usePreviousProps;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
5
|
-
import useLazyRef from '../useLazyRef/useLazyRef';
|
|
6
|
-
import useOnMount from '../useOnMount/useOnMount';
|
|
7
|
-
export var Timeout = /*#__PURE__*/function () {
|
|
8
|
-
function Timeout() {
|
|
9
|
-
var _this = this;
|
|
10
|
-
_classCallCheck(this, Timeout);
|
|
11
|
-
this.currentId = null;
|
|
12
|
-
this.clear = function () {
|
|
13
|
-
if (_this.currentId !== null) {
|
|
14
|
-
clearTimeout(_this.currentId);
|
|
15
|
-
_this.currentId = null;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
this.disposeEffect = function () {
|
|
19
|
-
return _this.clear;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
_createClass(Timeout, [{
|
|
23
|
-
key: "start",
|
|
24
|
-
value:
|
|
25
|
-
/**
|
|
26
|
-
* Executes `fn` after `delay`, clearing any previously scheduled call.
|
|
27
|
-
*/
|
|
28
|
-
function start(delay, fn) {
|
|
29
|
-
var _this2 = this;
|
|
30
|
-
this.clear();
|
|
31
|
-
this.currentId = setTimeout(function () {
|
|
32
|
-
_this2.currentId = null;
|
|
33
|
-
fn();
|
|
34
|
-
}, delay);
|
|
35
|
-
}
|
|
36
|
-
}], [{
|
|
37
|
-
key: "create",
|
|
38
|
-
value: function create() {
|
|
39
|
-
return new Timeout();
|
|
40
|
-
}
|
|
41
|
-
}]);
|
|
42
|
-
return Timeout;
|
|
43
|
-
}();
|
|
44
|
-
export default function useTimeout() {
|
|
45
|
-
var timeout = useLazyRef(Timeout.create).current;
|
|
46
|
-
useOnMount(timeout.disposeEffect);
|
|
47
|
-
return timeout;
|
|
48
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './visuallyHidden';
|