@pdg/react-hook 1.0.31 → 1.0.33
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/effect/index.d.ts +2 -0
- package/dist/{useFirstSkipEffect.d.ts → effect/useFirstSkipEffect.d.ts} +0 -1
- package/dist/{useFirstSkipLayoutEffect.d.ts → effect/useFirstSkipLayoutEffect.d.ts} +0 -1
- package/dist/forceUpdate/index.d.ts +2 -0
- package/dist/{useAutoForceUpdate.d.ts → forceUpdate/useAutoForceUpdate.d.ts} +0 -1
- package/dist/{useForceUpdate.d.ts → forceUpdate/useForceUpdate.d.ts} +0 -1
- package/dist/forwardRef/index.d.ts +2 -0
- package/dist/{useForwardLayoutRef.d.ts → forwardRef/useForwardLayoutRef.d.ts} +0 -1
- package/dist/{useForwardRef.d.ts → forwardRef/useForwardRef.d.ts} +0 -1
- package/dist/index.d.ts +9 -18
- package/dist/index.esm.js +171 -203
- package/dist/index.js +170 -202
- package/dist/mount/index.d.ts +1 -0
- package/dist/mount/useMountedRef.d.ts +2 -0
- package/dist/performance/index.d.ts +2 -0
- package/dist/{useLayoutPerformance.d.ts → performance/useLayoutPerformance.d.ts} +0 -1
- package/dist/{usePerformance.d.ts → performance/usePerformance.d.ts} +0 -1
- package/dist/ref/index.d.ts +2 -0
- package/dist/{useAutoUpdateLayoutRef.d.ts → ref/useAutoUpdateLayoutRef.d.ts} +0 -1
- package/dist/{useAutoUpdateRef.d.ts → ref/useAutoUpdateRef.d.ts} +0 -1
- package/dist/state/index.d.ts +4 -0
- package/dist/{useAutoUpdateRefState.d.ts → state/useAutoUpdateRefState.d.ts} +0 -1
- package/dist/{useAutoUpdateState.d.ts → state/useAutoUpdateState.d.ts} +0 -1
- package/dist/state/useRefState.d.ts +7 -0
- package/dist/state/useSafeState.d.ts +1 -0
- package/dist/{clearIntervalRef.d.ts → timeoutInterval/clearIntervalRef.d.ts} +0 -1
- package/dist/{clearTimeoutRef.d.ts → timeoutInterval/clearTimeoutRef.d.ts} +0 -1
- package/dist/timeoutInterval/index.d.ts +4 -0
- package/dist/{useIntervalRef.d.ts → timeoutInterval/useIntervalRef.d.ts} +0 -1
- package/dist/{useTimeoutRef.d.ts → timeoutInterval/useTimeoutRef.d.ts} +0 -1
- package/dist/update/index.d.ts +1 -0
- package/dist/update/useSafeUpdate.d.ts +1 -0
- package/package.json +1 -1
- package/dist/useAutoUpdateLayoutRefState.d.ts +0 -9
- package/dist/useAutoUpdateLayoutState.d.ts +0 -8
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
8
|
-
export * from './
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './useAutoUpdateLayoutRef';
|
|
11
|
-
export * from './usePerformance';
|
|
12
|
-
export * from './useLayoutPerformance';
|
|
13
|
-
export * from './useAutoForceUpdate';
|
|
14
|
-
export * from './useForceUpdate';
|
|
15
|
-
export * from './useTimeoutRef';
|
|
16
|
-
export * from './clearTimeoutRef';
|
|
17
|
-
export * from './useIntervalRef';
|
|
18
|
-
export * from './clearIntervalRef';
|
|
1
|
+
export * from './effect';
|
|
2
|
+
export * from './forceUpdate';
|
|
3
|
+
export * from './forwardRef';
|
|
4
|
+
export * from './mount';
|
|
5
|
+
export * from './performance';
|
|
6
|
+
export * from './ref';
|
|
7
|
+
export * from './state';
|
|
8
|
+
export * from './timeoutInterval';
|
|
9
|
+
export * from './update';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useRef,useEffect,useState,useCallback
|
|
1
|
+
import {useRef,useEffect,useLayoutEffect,useState,useCallback}from'react';function useFirstSkipEffect(effect, deps) {
|
|
2
2
|
var firstRef = useRef(true);
|
|
3
3
|
useEffect(function () {
|
|
4
4
|
if (firstRef.current) {
|
|
@@ -9,28 +9,6 @@ import {useRef,useEffect,useState,useCallback,useLayoutEffect}from'react';functi
|
|
|
9
9
|
}
|
|
10
10
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11
11
|
}, deps);
|
|
12
|
-
}// 구현부
|
|
13
|
-
function useAutoUpdateState(state, callback) {
|
|
14
|
-
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
15
|
-
useFirstSkipEffect(function () {
|
|
16
|
-
_setValue(callback ? callback(state) : state);
|
|
17
|
-
}, [state]);
|
|
18
|
-
var setValue = useCallback(function (newValue, skipCallback) {
|
|
19
|
-
var finalNewValue = newValue;
|
|
20
|
-
if (typeof finalNewValue === 'function') {
|
|
21
|
-
_setValue(function (prev) {
|
|
22
|
-
finalNewValue = finalNewValue(prev);
|
|
23
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
24
|
-
return finalNewValue;
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
29
|
-
_setValue(finalNewValue);
|
|
30
|
-
}
|
|
31
|
-
return finalNewValue;
|
|
32
|
-
}, [callback]);
|
|
33
|
-
return [_value, setValue];
|
|
34
12
|
}function useFirstSkipLayoutEffect(effect, deps) {
|
|
35
13
|
var firstRef = useRef(true);
|
|
36
14
|
useLayoutEffect(function () {
|
|
@@ -42,118 +20,78 @@ function useAutoUpdateState(state, callback) {
|
|
|
42
20
|
}
|
|
43
21
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
22
|
}, deps);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var setValue = useCallback(function (newValue, skipCallback) {
|
|
52
|
-
var finalNewValue = newValue;
|
|
53
|
-
if (typeof finalNewValue === 'function') {
|
|
54
|
-
_setValue(function (prev) {
|
|
55
|
-
finalNewValue = finalNewValue(prev);
|
|
56
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
57
|
-
return finalNewValue;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
62
|
-
_setValue(finalNewValue);
|
|
63
|
-
}
|
|
64
|
-
return finalNewValue;
|
|
65
|
-
}, [callback]);
|
|
66
|
-
return [_value, setValue];
|
|
67
|
-
}// 구현부
|
|
68
|
-
function useAutoUpdateRefState(state, callback) {
|
|
69
|
-
var valueRef = useRef(callback ? callback(state) : state);
|
|
70
|
-
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
71
|
-
useFirstSkipEffect(function () {
|
|
72
|
-
var newValue = callback ? callback(state) : state;
|
|
73
|
-
if (!equal$1(valueRef.current, newValue)) {
|
|
74
|
-
valueRef.current = newValue;
|
|
75
|
-
_setValue(newValue);
|
|
76
|
-
}
|
|
77
|
-
}, [state]);
|
|
78
|
-
var setValue = useCallback(function (newValue, skipCallback) {
|
|
79
|
-
var finalNewValue = newValue;
|
|
80
|
-
if (typeof finalNewValue === 'function') {
|
|
81
|
-
_setValue(function (prev) {
|
|
82
|
-
finalNewValue = finalNewValue(prev);
|
|
83
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
84
|
-
return finalNewValue;
|
|
23
|
+
}function useAutoForceUpdate(interval) {
|
|
24
|
+
var _a = useState(0), setTick = _a[1];
|
|
25
|
+
useEffect(function () {
|
|
26
|
+
var tm = setInterval(function () {
|
|
27
|
+
setTick(function (old) {
|
|
28
|
+
return old + 1;
|
|
85
29
|
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
/********************************************************************************************************************
|
|
97
|
-
* equal
|
|
98
|
-
* ******************************************************************************************************************/
|
|
99
|
-
function equal$1(v1, v2) {
|
|
100
|
-
if (v1 === v2)
|
|
101
|
-
return true;
|
|
102
|
-
if (typeof v1 !== typeof v2)
|
|
103
|
-
return false;
|
|
104
|
-
if (v1 == null || v2 == null)
|
|
105
|
-
return false;
|
|
106
|
-
if (typeof v1 === 'object' && typeof v2 === 'object') {
|
|
107
|
-
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
30
|
+
}, interval);
|
|
31
|
+
return function () {
|
|
32
|
+
clearInterval(tm);
|
|
33
|
+
};
|
|
34
|
+
}, [interval]);
|
|
35
|
+
}function clearIntervalRef(ref) {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
clearInterval(ref.current);
|
|
38
|
+
ref.current = undefined;
|
|
108
39
|
}
|
|
109
|
-
|
|
110
|
-
|
|
40
|
+
}function clearTimeoutRef(ref) {
|
|
41
|
+
if (ref.current) {
|
|
42
|
+
clearTimeout(ref.current);
|
|
43
|
+
ref.current = undefined;
|
|
111
44
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
45
|
+
}function useIntervalRef() {
|
|
46
|
+
var ref = useRef(undefined);
|
|
47
|
+
useEffect(function () {
|
|
48
|
+
return function () {
|
|
49
|
+
clearIntervalRef(ref);
|
|
50
|
+
};
|
|
51
|
+
}, []);
|
|
52
|
+
var setIntervalFunc = useCallback(function (callback, ms) {
|
|
53
|
+
clearIntervalRef(ref);
|
|
54
|
+
ref.current = setInterval(function () {
|
|
55
|
+
callback(ref);
|
|
56
|
+
}, ms);
|
|
57
|
+
}, []);
|
|
58
|
+
return [ref, setIntervalFunc];
|
|
59
|
+
}function useTimeoutRef() {
|
|
60
|
+
var ref = useRef(undefined);
|
|
61
|
+
useEffect(function () {
|
|
62
|
+
return function () {
|
|
63
|
+
clearTimeoutRef(ref);
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
66
|
+
var setTimeoutFunc = useCallback(function (callback, ms) {
|
|
67
|
+
clearTimeoutRef(ref);
|
|
68
|
+
ref.current = setTimeout(function () {
|
|
69
|
+
ref.current = undefined;
|
|
70
|
+
callback();
|
|
71
|
+
}, ms);
|
|
72
|
+
}, []);
|
|
73
|
+
return [ref, setTimeoutFunc];
|
|
74
|
+
}function useForceUpdate(delayMilliseconds) {
|
|
75
|
+
var _a = useTimeoutRef(), setDelayTimeout = _a[1];
|
|
76
|
+
var _b = useState(0), setValue = _b[1];
|
|
77
|
+
return useCallback(function (delay) {
|
|
78
|
+
if (ifUndefined(delay, delayMilliseconds) !== undefined) {
|
|
79
|
+
setDelayTimeout(function () {
|
|
80
|
+
setValue(function (old) { return old + 1; });
|
|
81
|
+
}, ifUndefined(delay, delayMilliseconds));
|
|
131
82
|
}
|
|
132
83
|
else {
|
|
133
|
-
|
|
134
|
-
_setValue(finalNewValue);
|
|
84
|
+
setValue(function (old) { return old + 1; });
|
|
135
85
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return [valueRef, _value, setValue];
|
|
86
|
+
},
|
|
87
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
|
+
[delayMilliseconds]);
|
|
140
89
|
}
|
|
141
90
|
/********************************************************************************************************************
|
|
142
|
-
*
|
|
91
|
+
* ifUndefined
|
|
143
92
|
* ******************************************************************************************************************/
|
|
144
|
-
function
|
|
145
|
-
|
|
146
|
-
return true;
|
|
147
|
-
if (typeof v1 !== typeof v2)
|
|
148
|
-
return false;
|
|
149
|
-
if (v1 == null || v2 == null)
|
|
150
|
-
return false;
|
|
151
|
-
if (typeof v1 === 'object' && typeof v2 === 'object') {
|
|
152
|
-
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
return v1 === v2;
|
|
156
|
-
}
|
|
93
|
+
function ifUndefined(v, v2) {
|
|
94
|
+
return v === undefined ? v2 : v;
|
|
157
95
|
}function useForwardLayoutRef(ref, value, onSet, onUnset) {
|
|
158
96
|
useLayoutEffect(function () {
|
|
159
97
|
onSet === null || onSet === void 0 ? void 0 : onSet(value);
|
|
@@ -200,102 +138,132 @@ function equal(v1, v2) {
|
|
|
200
138
|
}
|
|
201
139
|
};
|
|
202
140
|
}, [onSet, onUnset, ref, value]);
|
|
203
|
-
}function
|
|
141
|
+
}function useMountedRef(initialValue) {
|
|
142
|
+
if (initialValue === void 0) { initialValue = true; }
|
|
143
|
+
var isMountedRef = useRef(initialValue);
|
|
144
|
+
useEffect(function () {
|
|
145
|
+
isMountedRef.current = true;
|
|
146
|
+
return function () {
|
|
147
|
+
isMountedRef.current = false;
|
|
148
|
+
};
|
|
149
|
+
}, []);
|
|
150
|
+
return isMountedRef;
|
|
151
|
+
}function useLayoutPerformance(name) {
|
|
152
|
+
var beginTime = performance.now();
|
|
153
|
+
useLayoutEffect(function () {
|
|
154
|
+
console.log('Layout Performance', '-', name, performance.now() - beginTime);
|
|
155
|
+
});
|
|
156
|
+
}function usePerformance(name) {
|
|
157
|
+
var beginTime = performance.now();
|
|
158
|
+
useEffect(function () {
|
|
159
|
+
console.log('Performance', '-', name, performance.now() - beginTime);
|
|
160
|
+
});
|
|
161
|
+
}function useAutoUpdateLayoutRef(value) {
|
|
204
162
|
var valueRef = useRef(value);
|
|
205
163
|
var _a = useState(0), setUpdateValue = _a[1];
|
|
206
|
-
|
|
164
|
+
useFirstSkipLayoutEffect(function () {
|
|
207
165
|
valueRef.current = value;
|
|
208
166
|
setUpdateValue(function (prev) { return prev + 1; });
|
|
209
167
|
}, [value]);
|
|
210
168
|
return valueRef;
|
|
211
|
-
}function
|
|
169
|
+
}function useAutoUpdateRef(value) {
|
|
212
170
|
var valueRef = useRef(value);
|
|
213
171
|
var _a = useState(0), setUpdateValue = _a[1];
|
|
214
|
-
|
|
172
|
+
useFirstSkipEffect(function () {
|
|
215
173
|
valueRef.current = value;
|
|
216
174
|
setUpdateValue(function (prev) { return prev + 1; });
|
|
217
175
|
}, [value]);
|
|
218
176
|
return valueRef;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
var
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
177
|
+
}// 구현부
|
|
178
|
+
function useAutoUpdateRefState(state, callback) {
|
|
179
|
+
var valueRef = useRef(callback ? callback(state) : state);
|
|
180
|
+
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
181
|
+
useFirstSkipEffect(function () {
|
|
182
|
+
var newValue = callback ? callback(state) : state;
|
|
183
|
+
if (!equal(valueRef.current, newValue)) {
|
|
184
|
+
valueRef.current = newValue;
|
|
185
|
+
_setValue(newValue);
|
|
186
|
+
}
|
|
187
|
+
}, [state]);
|
|
188
|
+
var setValue = useCallback(function (newValue, skipCallback) {
|
|
189
|
+
var finalNewValue = newValue;
|
|
190
|
+
if (typeof finalNewValue === 'function') {
|
|
191
|
+
_setValue(function (prev) {
|
|
192
|
+
finalNewValue = finalNewValue(prev);
|
|
193
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
194
|
+
return finalNewValue;
|
|
235
195
|
});
|
|
236
|
-
}, interval);
|
|
237
|
-
return function () {
|
|
238
|
-
clearInterval(tm);
|
|
239
|
-
};
|
|
240
|
-
}, [interval]);
|
|
241
|
-
}function clearTimeoutRef(ref) {
|
|
242
|
-
if (ref.current) {
|
|
243
|
-
clearTimeout(ref.current);
|
|
244
|
-
ref.current = undefined;
|
|
245
|
-
}
|
|
246
|
-
}function useTimeoutRef() {
|
|
247
|
-
var ref = useRef(undefined);
|
|
248
|
-
useEffect(function () {
|
|
249
|
-
return function () {
|
|
250
|
-
clearTimeoutRef(ref);
|
|
251
|
-
};
|
|
252
|
-
}, []);
|
|
253
|
-
var setTimeoutFunc = useCallback(function (callback, ms) {
|
|
254
|
-
clearTimeoutRef(ref);
|
|
255
|
-
ref.current = setTimeout(function () {
|
|
256
|
-
ref.current = undefined;
|
|
257
|
-
callback();
|
|
258
|
-
}, ms);
|
|
259
|
-
}, []);
|
|
260
|
-
return [ref, setTimeoutFunc];
|
|
261
|
-
}function useForceUpdate(delayMilliseconds) {
|
|
262
|
-
var _a = useTimeoutRef(), setDelayTimeout = _a[1];
|
|
263
|
-
var _b = useState(0), setValue = _b[1];
|
|
264
|
-
return useCallback(function (delay) {
|
|
265
|
-
if (ifUndefined(delay, delayMilliseconds) !== undefined) {
|
|
266
|
-
setDelayTimeout(function () {
|
|
267
|
-
setValue(function (old) { return old + 1; });
|
|
268
|
-
}, ifUndefined(delay, delayMilliseconds));
|
|
269
196
|
}
|
|
270
197
|
else {
|
|
271
|
-
|
|
198
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
199
|
+
_setValue(finalNewValue);
|
|
272
200
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
[
|
|
201
|
+
valueRef.current = finalNewValue;
|
|
202
|
+
return finalNewValue;
|
|
203
|
+
}, [callback]);
|
|
204
|
+
return [valueRef, _value, setValue];
|
|
276
205
|
}
|
|
277
206
|
/********************************************************************************************************************
|
|
278
|
-
*
|
|
207
|
+
* equal
|
|
279
208
|
* ******************************************************************************************************************/
|
|
280
|
-
function
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
if (
|
|
284
|
-
|
|
285
|
-
|
|
209
|
+
function equal(v1, v2) {
|
|
210
|
+
if (v1 === v2)
|
|
211
|
+
return true;
|
|
212
|
+
if (typeof v1 !== typeof v2)
|
|
213
|
+
return false;
|
|
214
|
+
if (v1 == null || v2 == null)
|
|
215
|
+
return false;
|
|
216
|
+
if (typeof v1 === 'object' && typeof v2 === 'object') {
|
|
217
|
+
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
286
218
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
219
|
+
else {
|
|
220
|
+
return v1 === v2;
|
|
221
|
+
}
|
|
222
|
+
}// 구현부
|
|
223
|
+
function useAutoUpdateState(state, callback) {
|
|
224
|
+
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
225
|
+
useFirstSkipEffect(function () {
|
|
226
|
+
_setValue(callback ? callback(state) : state);
|
|
227
|
+
}, [state]);
|
|
228
|
+
var setValue = useCallback(function (newValue, skipCallback) {
|
|
229
|
+
var finalNewValue = newValue;
|
|
230
|
+
if (typeof finalNewValue === 'function') {
|
|
231
|
+
_setValue(function (prev) {
|
|
232
|
+
finalNewValue = finalNewValue(prev);
|
|
233
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
234
|
+
return finalNewValue;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
239
|
+
_setValue(finalNewValue);
|
|
240
|
+
}
|
|
241
|
+
return finalNewValue;
|
|
242
|
+
}, [callback]);
|
|
243
|
+
return [_value, setValue];
|
|
244
|
+
}function useRefState(initialState) {
|
|
245
|
+
var _a = useState(initialState), _value = _a[0], _setValue = _a[1];
|
|
246
|
+
var valueRef = useRef(_value);
|
|
247
|
+
var setValue = useCallback(function (value) {
|
|
248
|
+
if (typeof value === 'function') {
|
|
249
|
+
_setValue(function (prev) {
|
|
250
|
+
var finalValue = value(prev);
|
|
251
|
+
valueRef.current = finalValue;
|
|
252
|
+
return finalValue;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
valueRef.current = value;
|
|
257
|
+
_setValue(value);
|
|
258
|
+
}
|
|
293
259
|
}, []);
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
260
|
+
return [valueRef, _value, setValue];
|
|
261
|
+
}function useSafeUpdate() {
|
|
262
|
+
var mountedRef = useMountedRef();
|
|
263
|
+
return useCallback(function (callback) {
|
|
264
|
+
if (mountedRef.current) {
|
|
265
|
+
callback();
|
|
266
|
+
}
|
|
267
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
299
268
|
}, []);
|
|
300
|
-
|
|
301
|
-
}export{clearIntervalRef,clearTimeoutRef,useAutoForceUpdate,useAutoUpdateLayoutRef,useAutoUpdateLayoutRefState,useAutoUpdateLayoutState,useAutoUpdateRef,useAutoUpdateRefState,useAutoUpdateState,useFirstSkipEffect,useFirstSkipLayoutEffect,useForceUpdate,useForwardLayoutRef,useForwardRef,useIntervalRef,useLayoutPerformance,usePerformance,useTimeoutRef};
|
|
269
|
+
}export{clearIntervalRef,clearTimeoutRef,useAutoForceUpdate,useAutoUpdateLayoutRef,useAutoUpdateRef,useAutoUpdateRefState,useAutoUpdateState,useFirstSkipEffect,useFirstSkipLayoutEffect,useForceUpdate,useForwardLayoutRef,useForwardRef,useIntervalRef,useLayoutPerformance,useMountedRef,usePerformance,useRefState,useSafeUpdate,useTimeoutRef};
|
package/dist/index.js
CHANGED
|
@@ -9,28 +9,6 @@
|
|
|
9
9
|
}
|
|
10
10
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11
11
|
}, deps);
|
|
12
|
-
}// 구현부
|
|
13
|
-
function useAutoUpdateState(state, callback) {
|
|
14
|
-
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
15
|
-
useFirstSkipEffect(function () {
|
|
16
|
-
_setValue(callback ? callback(state) : state);
|
|
17
|
-
}, [state]);
|
|
18
|
-
var setValue = react.useCallback(function (newValue, skipCallback) {
|
|
19
|
-
var finalNewValue = newValue;
|
|
20
|
-
if (typeof finalNewValue === 'function') {
|
|
21
|
-
_setValue(function (prev) {
|
|
22
|
-
finalNewValue = finalNewValue(prev);
|
|
23
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
24
|
-
return finalNewValue;
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
29
|
-
_setValue(finalNewValue);
|
|
30
|
-
}
|
|
31
|
-
return finalNewValue;
|
|
32
|
-
}, [callback]);
|
|
33
|
-
return [_value, setValue];
|
|
34
12
|
}function useFirstSkipLayoutEffect(effect, deps) {
|
|
35
13
|
var firstRef = react.useRef(true);
|
|
36
14
|
react.useLayoutEffect(function () {
|
|
@@ -42,118 +20,78 @@ function useAutoUpdateState(state, callback) {
|
|
|
42
20
|
}
|
|
43
21
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
22
|
}, deps);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var setValue = react.useCallback(function (newValue, skipCallback) {
|
|
52
|
-
var finalNewValue = newValue;
|
|
53
|
-
if (typeof finalNewValue === 'function') {
|
|
54
|
-
_setValue(function (prev) {
|
|
55
|
-
finalNewValue = finalNewValue(prev);
|
|
56
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
57
|
-
return finalNewValue;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
62
|
-
_setValue(finalNewValue);
|
|
63
|
-
}
|
|
64
|
-
return finalNewValue;
|
|
65
|
-
}, [callback]);
|
|
66
|
-
return [_value, setValue];
|
|
67
|
-
}// 구현부
|
|
68
|
-
function useAutoUpdateRefState(state, callback) {
|
|
69
|
-
var valueRef = react.useRef(callback ? callback(state) : state);
|
|
70
|
-
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
71
|
-
useFirstSkipEffect(function () {
|
|
72
|
-
var newValue = callback ? callback(state) : state;
|
|
73
|
-
if (!equal$1(valueRef.current, newValue)) {
|
|
74
|
-
valueRef.current = newValue;
|
|
75
|
-
_setValue(newValue);
|
|
76
|
-
}
|
|
77
|
-
}, [state]);
|
|
78
|
-
var setValue = react.useCallback(function (newValue, skipCallback) {
|
|
79
|
-
var finalNewValue = newValue;
|
|
80
|
-
if (typeof finalNewValue === 'function') {
|
|
81
|
-
_setValue(function (prev) {
|
|
82
|
-
finalNewValue = finalNewValue(prev);
|
|
83
|
-
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
84
|
-
return finalNewValue;
|
|
23
|
+
}function useAutoForceUpdate(interval) {
|
|
24
|
+
var _a = react.useState(0), setTick = _a[1];
|
|
25
|
+
react.useEffect(function () {
|
|
26
|
+
var tm = setInterval(function () {
|
|
27
|
+
setTick(function (old) {
|
|
28
|
+
return old + 1;
|
|
85
29
|
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
/********************************************************************************************************************
|
|
97
|
-
* equal
|
|
98
|
-
* ******************************************************************************************************************/
|
|
99
|
-
function equal$1(v1, v2) {
|
|
100
|
-
if (v1 === v2)
|
|
101
|
-
return true;
|
|
102
|
-
if (typeof v1 !== typeof v2)
|
|
103
|
-
return false;
|
|
104
|
-
if (v1 == null || v2 == null)
|
|
105
|
-
return false;
|
|
106
|
-
if (typeof v1 === 'object' && typeof v2 === 'object') {
|
|
107
|
-
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
30
|
+
}, interval);
|
|
31
|
+
return function () {
|
|
32
|
+
clearInterval(tm);
|
|
33
|
+
};
|
|
34
|
+
}, [interval]);
|
|
35
|
+
}function clearIntervalRef(ref) {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
clearInterval(ref.current);
|
|
38
|
+
ref.current = undefined;
|
|
108
39
|
}
|
|
109
|
-
|
|
110
|
-
|
|
40
|
+
}function clearTimeoutRef(ref) {
|
|
41
|
+
if (ref.current) {
|
|
42
|
+
clearTimeout(ref.current);
|
|
43
|
+
ref.current = undefined;
|
|
111
44
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
45
|
+
}function useIntervalRef() {
|
|
46
|
+
var ref = react.useRef(undefined);
|
|
47
|
+
react.useEffect(function () {
|
|
48
|
+
return function () {
|
|
49
|
+
clearIntervalRef(ref);
|
|
50
|
+
};
|
|
51
|
+
}, []);
|
|
52
|
+
var setIntervalFunc = react.useCallback(function (callback, ms) {
|
|
53
|
+
clearIntervalRef(ref);
|
|
54
|
+
ref.current = setInterval(function () {
|
|
55
|
+
callback(ref);
|
|
56
|
+
}, ms);
|
|
57
|
+
}, []);
|
|
58
|
+
return [ref, setIntervalFunc];
|
|
59
|
+
}function useTimeoutRef() {
|
|
60
|
+
var ref = react.useRef(undefined);
|
|
61
|
+
react.useEffect(function () {
|
|
62
|
+
return function () {
|
|
63
|
+
clearTimeoutRef(ref);
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
66
|
+
var setTimeoutFunc = react.useCallback(function (callback, ms) {
|
|
67
|
+
clearTimeoutRef(ref);
|
|
68
|
+
ref.current = setTimeout(function () {
|
|
69
|
+
ref.current = undefined;
|
|
70
|
+
callback();
|
|
71
|
+
}, ms);
|
|
72
|
+
}, []);
|
|
73
|
+
return [ref, setTimeoutFunc];
|
|
74
|
+
}function useForceUpdate(delayMilliseconds) {
|
|
75
|
+
var _a = useTimeoutRef(), setDelayTimeout = _a[1];
|
|
76
|
+
var _b = react.useState(0), setValue = _b[1];
|
|
77
|
+
return react.useCallback(function (delay) {
|
|
78
|
+
if (ifUndefined(delay, delayMilliseconds) !== undefined) {
|
|
79
|
+
setDelayTimeout(function () {
|
|
80
|
+
setValue(function (old) { return old + 1; });
|
|
81
|
+
}, ifUndefined(delay, delayMilliseconds));
|
|
131
82
|
}
|
|
132
83
|
else {
|
|
133
|
-
|
|
134
|
-
_setValue(finalNewValue);
|
|
84
|
+
setValue(function (old) { return old + 1; });
|
|
135
85
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return [valueRef, _value, setValue];
|
|
86
|
+
},
|
|
87
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
|
+
[delayMilliseconds]);
|
|
140
89
|
}
|
|
141
90
|
/********************************************************************************************************************
|
|
142
|
-
*
|
|
91
|
+
* ifUndefined
|
|
143
92
|
* ******************************************************************************************************************/
|
|
144
|
-
function
|
|
145
|
-
|
|
146
|
-
return true;
|
|
147
|
-
if (typeof v1 !== typeof v2)
|
|
148
|
-
return false;
|
|
149
|
-
if (v1 == null || v2 == null)
|
|
150
|
-
return false;
|
|
151
|
-
if (typeof v1 === 'object' && typeof v2 === 'object') {
|
|
152
|
-
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
return v1 === v2;
|
|
156
|
-
}
|
|
93
|
+
function ifUndefined(v, v2) {
|
|
94
|
+
return v === undefined ? v2 : v;
|
|
157
95
|
}function useForwardLayoutRef(ref, value, onSet, onUnset) {
|
|
158
96
|
react.useLayoutEffect(function () {
|
|
159
97
|
onSet === null || onSet === void 0 ? void 0 : onSet(value);
|
|
@@ -200,102 +138,132 @@ function equal(v1, v2) {
|
|
|
200
138
|
}
|
|
201
139
|
};
|
|
202
140
|
}, [onSet, onUnset, ref, value]);
|
|
203
|
-
}function
|
|
141
|
+
}function useMountedRef(initialValue) {
|
|
142
|
+
if (initialValue === void 0) { initialValue = true; }
|
|
143
|
+
var isMountedRef = react.useRef(initialValue);
|
|
144
|
+
react.useEffect(function () {
|
|
145
|
+
isMountedRef.current = true;
|
|
146
|
+
return function () {
|
|
147
|
+
isMountedRef.current = false;
|
|
148
|
+
};
|
|
149
|
+
}, []);
|
|
150
|
+
return isMountedRef;
|
|
151
|
+
}function useLayoutPerformance(name) {
|
|
152
|
+
var beginTime = performance.now();
|
|
153
|
+
react.useLayoutEffect(function () {
|
|
154
|
+
console.log('Layout Performance', '-', name, performance.now() - beginTime);
|
|
155
|
+
});
|
|
156
|
+
}function usePerformance(name) {
|
|
157
|
+
var beginTime = performance.now();
|
|
158
|
+
react.useEffect(function () {
|
|
159
|
+
console.log('Performance', '-', name, performance.now() - beginTime);
|
|
160
|
+
});
|
|
161
|
+
}function useAutoUpdateLayoutRef(value) {
|
|
204
162
|
var valueRef = react.useRef(value);
|
|
205
163
|
var _a = react.useState(0), setUpdateValue = _a[1];
|
|
206
|
-
|
|
164
|
+
useFirstSkipLayoutEffect(function () {
|
|
207
165
|
valueRef.current = value;
|
|
208
166
|
setUpdateValue(function (prev) { return prev + 1; });
|
|
209
167
|
}, [value]);
|
|
210
168
|
return valueRef;
|
|
211
|
-
}function
|
|
169
|
+
}function useAutoUpdateRef(value) {
|
|
212
170
|
var valueRef = react.useRef(value);
|
|
213
171
|
var _a = react.useState(0), setUpdateValue = _a[1];
|
|
214
|
-
|
|
172
|
+
useFirstSkipEffect(function () {
|
|
215
173
|
valueRef.current = value;
|
|
216
174
|
setUpdateValue(function (prev) { return prev + 1; });
|
|
217
175
|
}, [value]);
|
|
218
176
|
return valueRef;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
react.
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
var
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
177
|
+
}// 구현부
|
|
178
|
+
function useAutoUpdateRefState(state, callback) {
|
|
179
|
+
var valueRef = react.useRef(callback ? callback(state) : state);
|
|
180
|
+
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
181
|
+
useFirstSkipEffect(function () {
|
|
182
|
+
var newValue = callback ? callback(state) : state;
|
|
183
|
+
if (!equal(valueRef.current, newValue)) {
|
|
184
|
+
valueRef.current = newValue;
|
|
185
|
+
_setValue(newValue);
|
|
186
|
+
}
|
|
187
|
+
}, [state]);
|
|
188
|
+
var setValue = react.useCallback(function (newValue, skipCallback) {
|
|
189
|
+
var finalNewValue = newValue;
|
|
190
|
+
if (typeof finalNewValue === 'function') {
|
|
191
|
+
_setValue(function (prev) {
|
|
192
|
+
finalNewValue = finalNewValue(prev);
|
|
193
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
194
|
+
return finalNewValue;
|
|
235
195
|
});
|
|
236
|
-
}, interval);
|
|
237
|
-
return function () {
|
|
238
|
-
clearInterval(tm);
|
|
239
|
-
};
|
|
240
|
-
}, [interval]);
|
|
241
|
-
}function clearTimeoutRef(ref) {
|
|
242
|
-
if (ref.current) {
|
|
243
|
-
clearTimeout(ref.current);
|
|
244
|
-
ref.current = undefined;
|
|
245
|
-
}
|
|
246
|
-
}function useTimeoutRef() {
|
|
247
|
-
var ref = react.useRef(undefined);
|
|
248
|
-
react.useEffect(function () {
|
|
249
|
-
return function () {
|
|
250
|
-
clearTimeoutRef(ref);
|
|
251
|
-
};
|
|
252
|
-
}, []);
|
|
253
|
-
var setTimeoutFunc = react.useCallback(function (callback, ms) {
|
|
254
|
-
clearTimeoutRef(ref);
|
|
255
|
-
ref.current = setTimeout(function () {
|
|
256
|
-
ref.current = undefined;
|
|
257
|
-
callback();
|
|
258
|
-
}, ms);
|
|
259
|
-
}, []);
|
|
260
|
-
return [ref, setTimeoutFunc];
|
|
261
|
-
}function useForceUpdate(delayMilliseconds) {
|
|
262
|
-
var _a = useTimeoutRef(), setDelayTimeout = _a[1];
|
|
263
|
-
var _b = react.useState(0), setValue = _b[1];
|
|
264
|
-
return react.useCallback(function (delay) {
|
|
265
|
-
if (ifUndefined(delay, delayMilliseconds) !== undefined) {
|
|
266
|
-
setDelayTimeout(function () {
|
|
267
|
-
setValue(function (old) { return old + 1; });
|
|
268
|
-
}, ifUndefined(delay, delayMilliseconds));
|
|
269
196
|
}
|
|
270
197
|
else {
|
|
271
|
-
|
|
198
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
199
|
+
_setValue(finalNewValue);
|
|
272
200
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
[
|
|
201
|
+
valueRef.current = finalNewValue;
|
|
202
|
+
return finalNewValue;
|
|
203
|
+
}, [callback]);
|
|
204
|
+
return [valueRef, _value, setValue];
|
|
276
205
|
}
|
|
277
206
|
/********************************************************************************************************************
|
|
278
|
-
*
|
|
207
|
+
* equal
|
|
279
208
|
* ******************************************************************************************************************/
|
|
280
|
-
function
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
if (
|
|
284
|
-
|
|
285
|
-
|
|
209
|
+
function equal(v1, v2) {
|
|
210
|
+
if (v1 === v2)
|
|
211
|
+
return true;
|
|
212
|
+
if (typeof v1 !== typeof v2)
|
|
213
|
+
return false;
|
|
214
|
+
if (v1 == null || v2 == null)
|
|
215
|
+
return false;
|
|
216
|
+
if (typeof v1 === 'object' && typeof v2 === 'object') {
|
|
217
|
+
return JSON.stringify(v1) === JSON.stringify(v2);
|
|
286
218
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
219
|
+
else {
|
|
220
|
+
return v1 === v2;
|
|
221
|
+
}
|
|
222
|
+
}// 구현부
|
|
223
|
+
function useAutoUpdateState(state, callback) {
|
|
224
|
+
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
225
|
+
useFirstSkipEffect(function () {
|
|
226
|
+
_setValue(callback ? callback(state) : state);
|
|
227
|
+
}, [state]);
|
|
228
|
+
var setValue = react.useCallback(function (newValue, skipCallback) {
|
|
229
|
+
var finalNewValue = newValue;
|
|
230
|
+
if (typeof finalNewValue === 'function') {
|
|
231
|
+
_setValue(function (prev) {
|
|
232
|
+
finalNewValue = finalNewValue(prev);
|
|
233
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
234
|
+
return finalNewValue;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
239
|
+
_setValue(finalNewValue);
|
|
240
|
+
}
|
|
241
|
+
return finalNewValue;
|
|
242
|
+
}, [callback]);
|
|
243
|
+
return [_value, setValue];
|
|
244
|
+
}function useRefState(initialState) {
|
|
245
|
+
var _a = react.useState(initialState), _value = _a[0], _setValue = _a[1];
|
|
246
|
+
var valueRef = react.useRef(_value);
|
|
247
|
+
var setValue = react.useCallback(function (value) {
|
|
248
|
+
if (typeof value === 'function') {
|
|
249
|
+
_setValue(function (prev) {
|
|
250
|
+
var finalValue = value(prev);
|
|
251
|
+
valueRef.current = finalValue;
|
|
252
|
+
return finalValue;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
valueRef.current = value;
|
|
257
|
+
_setValue(value);
|
|
258
|
+
}
|
|
293
259
|
}, []);
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
260
|
+
return [valueRef, _value, setValue];
|
|
261
|
+
}function useSafeUpdate() {
|
|
262
|
+
var mountedRef = useMountedRef();
|
|
263
|
+
return react.useCallback(function (callback) {
|
|
264
|
+
if (mountedRef.current) {
|
|
265
|
+
callback();
|
|
266
|
+
}
|
|
267
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
299
268
|
}, []);
|
|
300
|
-
|
|
301
|
-
}exports.clearIntervalRef=clearIntervalRef;exports.clearTimeoutRef=clearTimeoutRef;exports.useAutoForceUpdate=useAutoForceUpdate;exports.useAutoUpdateLayoutRef=useAutoUpdateLayoutRef;exports.useAutoUpdateLayoutRefState=useAutoUpdateLayoutRefState;exports.useAutoUpdateLayoutState=useAutoUpdateLayoutState;exports.useAutoUpdateRef=useAutoUpdateRef;exports.useAutoUpdateRefState=useAutoUpdateRefState;exports.useAutoUpdateState=useAutoUpdateState;exports.useFirstSkipEffect=useFirstSkipEffect;exports.useFirstSkipLayoutEffect=useFirstSkipLayoutEffect;exports.useForceUpdate=useForceUpdate;exports.useForwardLayoutRef=useForwardLayoutRef;exports.useForwardRef=useForwardRef;exports.useIntervalRef=useIntervalRef;exports.useLayoutPerformance=useLayoutPerformance;exports.usePerformance=usePerformance;exports.useTimeoutRef=useTimeoutRef;
|
|
269
|
+
}exports.clearIntervalRef=clearIntervalRef;exports.clearTimeoutRef=clearTimeoutRef;exports.useAutoForceUpdate=useAutoForceUpdate;exports.useAutoUpdateLayoutRef=useAutoUpdateLayoutRef;exports.useAutoUpdateRef=useAutoUpdateRef;exports.useAutoUpdateRefState=useAutoUpdateRefState;exports.useAutoUpdateState=useAutoUpdateState;exports.useFirstSkipEffect=useFirstSkipEffect;exports.useFirstSkipLayoutEffect=useFirstSkipLayoutEffect;exports.useForceUpdate=useForceUpdate;exports.useForwardLayoutRef=useForwardLayoutRef;exports.useForwardRef=useForwardRef;exports.useIntervalRef=useIntervalRef;exports.useLayoutPerformance=useLayoutPerformance;exports.useMountedRef=useMountedRef;exports.usePerformance=usePerformance;exports.useRefState=useRefState;exports.useSafeUpdate=useSafeUpdate;exports.useTimeoutRef=useTimeoutRef;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useMountedRef';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch, RefObject, SetStateAction } from 'react';
|
|
2
|
+
export declare function useRefState<S>(initialState: S | (() => S)): [RefObject<S>, S, Dispatch<SetStateAction<S>>];
|
|
3
|
+
export declare function useRefState<S = undefined>(): [
|
|
4
|
+
RefObject<S | undefined>,
|
|
5
|
+
S | undefined,
|
|
6
|
+
Dispatch<SetStateAction<S | undefined>>
|
|
7
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useSafeUpdate';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useSafeUpdate(): (callback: () => void) => void;
|
package/package.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { RefObject, SetStateAction } from 'react';
|
|
2
|
-
export declare function useAutoUpdateLayoutRefState<T>(state: Exclude<T, (...args: any[]) => any>): [RefObject<T>, T, (value: SetStateAction<T>) => T];
|
|
3
|
-
export declare function useAutoUpdateLayoutRefState<T>(state: Exclude<T, (...args: any[]) => any>, callback: (state: T) => T): [RefObject<T>, T, (value: SetStateAction<T>, skipCallback?: boolean) => T];
|
|
4
|
-
export declare function useAutoUpdateLayoutRefState<T = never, StateT = never>(state: Exclude<StateT, (...args: any[]) => any>, callback: (state: T | StateT) => T extends never ? StateT : T): [
|
|
5
|
-
RefObject<T extends never ? StateT : T>,
|
|
6
|
-
T extends never ? StateT : T,
|
|
7
|
-
(value: SetStateAction<T | StateT>, skipCallback?: boolean) => T extends never ? StateT : T
|
|
8
|
-
];
|
|
9
|
-
export default useAutoUpdateLayoutRefState;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SetStateAction } from 'react';
|
|
2
|
-
export declare function useAutoUpdateLayoutState<T>(state: Exclude<T, (...args: any[]) => any>): [T, (value: SetStateAction<T>) => T];
|
|
3
|
-
export declare function useAutoUpdateLayoutState<T>(state: Exclude<T, (...args: any[]) => any>, callback: (state: T) => T): [T, (value: SetStateAction<T>, skipCallback?: boolean) => T];
|
|
4
|
-
export declare function useAutoUpdateLayoutState<T = never, StateT = never>(state: Exclude<StateT, (...args: any[]) => any>, callback: (state: T | StateT) => T extends never ? StateT : T): [
|
|
5
|
-
T extends never ? StateT : T,
|
|
6
|
-
(value: SetStateAction<T | StateT>, skipCallback?: boolean) => T extends never ? StateT : T
|
|
7
|
-
];
|
|
8
|
-
export default useAutoUpdateLayoutState;
|