@pdg/react-hook 1.0.30 → 1.0.32
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/forwardRef/useForwardLayoutRef.d.ts +2 -0
- package/dist/{useForwardRef.d.ts → forwardRef/useForwardRef.d.ts} +1 -2
- package/dist/index.d.ts +9 -17
- package/dist/index.esm.js +176 -184
- package/dist/index.js +175 -183
- 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 +19 -14
- package/dist/useAutoUpdateLayoutRefState.d.ts +0 -9
- package/dist/useAutoUpdateLayoutState.d.ts +0 -8
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { ForwardedRef } from 'react';
|
|
2
|
-
export declare function useForwardRef<T>(ref: ForwardedRef<T>, value: T): void;
|
|
3
|
-
export default useForwardRef;
|
|
2
|
+
export declare function useForwardRef<T>(ref: ForwardedRef<T>, value: T, onSet?: (value: T) => void, onUnset?: () => void): void;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +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 './usePerformance';
|
|
11
|
-
export * from './useLayoutPerformance';
|
|
12
|
-
export * from './useAutoForceUpdate';
|
|
13
|
-
export * from './useForceUpdate';
|
|
14
|
-
export * from './useTimeoutRef';
|
|
15
|
-
export * from './clearTimeoutRef';
|
|
16
|
-
export * from './useIntervalRef';
|
|
17
|
-
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,35 +20,166 @@ 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;
|
|
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;
|
|
58
29
|
});
|
|
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;
|
|
39
|
+
}
|
|
40
|
+
}function clearTimeoutRef(ref) {
|
|
41
|
+
if (ref.current) {
|
|
42
|
+
clearTimeout(ref.current);
|
|
43
|
+
ref.current = undefined;
|
|
44
|
+
}
|
|
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));
|
|
59
82
|
}
|
|
60
83
|
else {
|
|
61
|
-
|
|
62
|
-
_setValue(finalNewValue);
|
|
84
|
+
setValue(function (old) { return old + 1; });
|
|
63
85
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
},
|
|
87
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
|
+
[delayMilliseconds]);
|
|
89
|
+
}
|
|
90
|
+
/********************************************************************************************************************
|
|
91
|
+
* ifUndefined
|
|
92
|
+
* ******************************************************************************************************************/
|
|
93
|
+
function ifUndefined(v, v2) {
|
|
94
|
+
return v === undefined ? v2 : v;
|
|
95
|
+
}function useForwardLayoutRef(ref, value, onSet, onUnset) {
|
|
96
|
+
useLayoutEffect(function () {
|
|
97
|
+
onSet === null || onSet === void 0 ? void 0 : onSet(value);
|
|
98
|
+
if (ref) {
|
|
99
|
+
if (typeof ref === 'function') {
|
|
100
|
+
ref(value);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
ref.current = value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return function () {
|
|
107
|
+
onUnset === null || onUnset === void 0 ? void 0 : onUnset();
|
|
108
|
+
if (ref) {
|
|
109
|
+
if (typeof ref === 'function') {
|
|
110
|
+
ref(null);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
ref.current = null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}, [onSet, onUnset, ref, value]);
|
|
118
|
+
}function useForwardRef(ref, value, onSet, onUnset) {
|
|
119
|
+
useEffect(function () {
|
|
120
|
+
onSet === null || onSet === void 0 ? void 0 : onSet(value);
|
|
121
|
+
if (ref) {
|
|
122
|
+
if (typeof ref === 'function') {
|
|
123
|
+
ref(value);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
ref.current = value;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return function () {
|
|
130
|
+
onUnset === null || onUnset === void 0 ? void 0 : onUnset();
|
|
131
|
+
if (ref) {
|
|
132
|
+
if (typeof ref === 'function') {
|
|
133
|
+
ref(null);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
ref.current = null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}, [onSet, onUnset, ref, value]);
|
|
141
|
+
}function useMountedRef(initialValue) {
|
|
142
|
+
if (initialValue === void 0) { initialValue = true; }
|
|
143
|
+
var isMountedRef = useRef(initialValue);
|
|
144
|
+
useEffect(function () {
|
|
145
|
+
return function () {
|
|
146
|
+
isMountedRef.current = false;
|
|
147
|
+
};
|
|
148
|
+
}, []);
|
|
149
|
+
return isMountedRef;
|
|
150
|
+
}function useLayoutPerformance(name) {
|
|
151
|
+
var beginTime = performance.now();
|
|
152
|
+
useLayoutEffect(function () {
|
|
153
|
+
console.log('Layout Performance', '-', name, performance.now() - beginTime);
|
|
154
|
+
});
|
|
155
|
+
}function usePerformance(name) {
|
|
156
|
+
var beginTime = performance.now();
|
|
157
|
+
useEffect(function () {
|
|
158
|
+
console.log('Performance', '-', name, performance.now() - beginTime);
|
|
159
|
+
});
|
|
160
|
+
}function useAutoUpdateLayoutRef(value) {
|
|
161
|
+
var valueRef = useRef(value);
|
|
162
|
+
var _a = useState(0), setUpdateValue = _a[1];
|
|
163
|
+
useFirstSkipLayoutEffect(function () {
|
|
164
|
+
valueRef.current = value;
|
|
165
|
+
setUpdateValue(function (prev) { return prev + 1; });
|
|
166
|
+
}, [value]);
|
|
167
|
+
return valueRef;
|
|
168
|
+
}function useAutoUpdateRef(value) {
|
|
169
|
+
var valueRef = useRef(value);
|
|
170
|
+
var _a = useState(0), setUpdateValue = _a[1];
|
|
171
|
+
useFirstSkipEffect(function () {
|
|
172
|
+
valueRef.current = value;
|
|
173
|
+
setUpdateValue(function (prev) { return prev + 1; });
|
|
174
|
+
}, [value]);
|
|
175
|
+
return valueRef;
|
|
67
176
|
}// 구현부
|
|
68
177
|
function useAutoUpdateRefState(state, callback) {
|
|
69
178
|
var valueRef = useRef(callback ? callback(state) : state);
|
|
70
179
|
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
71
180
|
useFirstSkipEffect(function () {
|
|
72
181
|
var newValue = callback ? callback(state) : state;
|
|
73
|
-
if (!equal
|
|
182
|
+
if (!equal(valueRef.current, newValue)) {
|
|
74
183
|
valueRef.current = newValue;
|
|
75
184
|
_setValue(newValue);
|
|
76
185
|
}
|
|
@@ -96,7 +205,7 @@ function useAutoUpdateRefState(state, callback) {
|
|
|
96
205
|
/********************************************************************************************************************
|
|
97
206
|
* equal
|
|
98
207
|
* ******************************************************************************************************************/
|
|
99
|
-
function equal
|
|
208
|
+
function equal(v1, v2) {
|
|
100
209
|
if (v1 === v2)
|
|
101
210
|
return true;
|
|
102
211
|
if (typeof v1 !== typeof v2)
|
|
@@ -110,15 +219,10 @@ function equal$1(v1, v2) {
|
|
|
110
219
|
return v1 === v2;
|
|
111
220
|
}
|
|
112
221
|
}// 구현부
|
|
113
|
-
function
|
|
114
|
-
var valueRef = useRef(callback ? callback(state) : state);
|
|
222
|
+
function useAutoUpdateState(state, callback) {
|
|
115
223
|
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (!equal(valueRef.current, newValue)) {
|
|
119
|
-
valueRef.current = newValue;
|
|
120
|
-
_setValue(newValue);
|
|
121
|
-
}
|
|
224
|
+
useFirstSkipEffect(function () {
|
|
225
|
+
_setValue(callback ? callback(state) : state);
|
|
122
226
|
}, [state]);
|
|
123
227
|
var setValue = useCallback(function (newValue, skipCallback) {
|
|
124
228
|
var finalNewValue = newValue;
|
|
@@ -133,144 +237,32 @@ function useAutoUpdateLayoutRefState(state, callback) {
|
|
|
133
237
|
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
134
238
|
_setValue(finalNewValue);
|
|
135
239
|
}
|
|
136
|
-
valueRef.current = finalNewValue;
|
|
137
240
|
return finalNewValue;
|
|
138
241
|
}, [callback]);
|
|
139
|
-
return [
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
}
|
|
157
|
-
}function useForwardRef(ref, value) {
|
|
158
|
-
useLayoutEffect(function () {
|
|
159
|
-
if (ref) {
|
|
160
|
-
if (typeof ref === 'function') {
|
|
161
|
-
ref(value);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
ref.current = value;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return function () {
|
|
168
|
-
if (ref) {
|
|
169
|
-
if (typeof ref === 'function') {
|
|
170
|
-
ref(null);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
ref.current = null;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
}, [ref, value]);
|
|
178
|
-
}function useAutoUpdateRef(value) {
|
|
179
|
-
var valueRef = useRef(value);
|
|
180
|
-
var _a = useState(0), setUpdateValue = _a[1];
|
|
181
|
-
useFirstSkipEffect(function () {
|
|
182
|
-
valueRef.current = value;
|
|
183
|
-
setUpdateValue(function (prev) { return prev + 1; });
|
|
184
|
-
}, [value]);
|
|
185
|
-
return valueRef;
|
|
186
|
-
}function useAutoUpdateLayoutRef(value) {
|
|
187
|
-
var valueRef = useRef(value);
|
|
188
|
-
var _a = useState(0), setUpdateValue = _a[1];
|
|
189
|
-
useFirstSkipLayoutEffect(function () {
|
|
190
|
-
valueRef.current = value;
|
|
191
|
-
setUpdateValue(function (prev) { return prev + 1; });
|
|
192
|
-
}, [value]);
|
|
193
|
-
return valueRef;
|
|
194
|
-
}function usePerformance(name) {
|
|
195
|
-
var beginTime = performance.now();
|
|
196
|
-
useEffect(function () {
|
|
197
|
-
console.log('Performance', '-', name, performance.now() - beginTime);
|
|
198
|
-
});
|
|
199
|
-
}function useLayoutPerformance(name) {
|
|
200
|
-
var beginTime = performance.now();
|
|
201
|
-
useLayoutEffect(function () {
|
|
202
|
-
console.log('Layout Performance', '-', name, performance.now() - beginTime);
|
|
203
|
-
});
|
|
204
|
-
}function useAutoForceUpdate(interval) {
|
|
205
|
-
var _a = useState(0), setTick = _a[1];
|
|
206
|
-
useEffect(function () {
|
|
207
|
-
var tm = setInterval(function () {
|
|
208
|
-
setTick(function (old) {
|
|
209
|
-
return old + 1;
|
|
242
|
+
return [_value, setValue];
|
|
243
|
+
}function useRefState(initialState) {
|
|
244
|
+
var _a = useState(initialState), _value = _a[0], _setValue = _a[1];
|
|
245
|
+
var valueRef = useRef(_value);
|
|
246
|
+
var setValue = useCallback(function (value) {
|
|
247
|
+
if (typeof value === 'function') {
|
|
248
|
+
_setValue(function (prev) {
|
|
249
|
+
var finalValue = value(prev);
|
|
250
|
+
valueRef.current = finalValue;
|
|
251
|
+
return finalValue;
|
|
210
252
|
});
|
|
211
|
-
}, interval);
|
|
212
|
-
return function () {
|
|
213
|
-
clearInterval(tm);
|
|
214
|
-
};
|
|
215
|
-
}, [interval]);
|
|
216
|
-
}function clearTimeoutRef(ref) {
|
|
217
|
-
if (ref.current) {
|
|
218
|
-
clearTimeout(ref.current);
|
|
219
|
-
ref.current = undefined;
|
|
220
|
-
}
|
|
221
|
-
}function useTimeoutRef() {
|
|
222
|
-
var ref = useRef(undefined);
|
|
223
|
-
useEffect(function () {
|
|
224
|
-
return function () {
|
|
225
|
-
clearTimeoutRef(ref);
|
|
226
|
-
};
|
|
227
|
-
}, []);
|
|
228
|
-
var setTimeoutFunc = useCallback(function (callback, ms) {
|
|
229
|
-
clearTimeoutRef(ref);
|
|
230
|
-
ref.current = setTimeout(function () {
|
|
231
|
-
ref.current = undefined;
|
|
232
|
-
callback();
|
|
233
|
-
}, ms);
|
|
234
|
-
}, []);
|
|
235
|
-
return [ref, setTimeoutFunc];
|
|
236
|
-
}function useForceUpdate(delayMilliseconds) {
|
|
237
|
-
var _a = useTimeoutRef(), setDelayTimeout = _a[1];
|
|
238
|
-
var _b = useState(0), setValue = _b[1];
|
|
239
|
-
return useCallback(function (delay) {
|
|
240
|
-
if (ifUndefined(delay, delayMilliseconds) !== undefined) {
|
|
241
|
-
setDelayTimeout(function () {
|
|
242
|
-
setValue(function (old) { return old + 1; });
|
|
243
|
-
}, ifUndefined(delay, delayMilliseconds));
|
|
244
253
|
}
|
|
245
254
|
else {
|
|
246
|
-
|
|
255
|
+
valueRef.current = value;
|
|
256
|
+
_setValue(value);
|
|
247
257
|
}
|
|
248
|
-
},
|
|
249
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
250
|
-
[delayMilliseconds]);
|
|
251
|
-
}
|
|
252
|
-
/********************************************************************************************************************
|
|
253
|
-
* ifUndefined
|
|
254
|
-
* ******************************************************************************************************************/
|
|
255
|
-
function ifUndefined(v, v2) {
|
|
256
|
-
return v === undefined ? v2 : v;
|
|
257
|
-
}function clearIntervalRef(ref) {
|
|
258
|
-
if (ref.current) {
|
|
259
|
-
clearInterval(ref.current);
|
|
260
|
-
ref.current = undefined;
|
|
261
|
-
}
|
|
262
|
-
}function useIntervalRef() {
|
|
263
|
-
var ref = useRef(undefined);
|
|
264
|
-
useEffect(function () {
|
|
265
|
-
return function () {
|
|
266
|
-
clearIntervalRef(ref);
|
|
267
|
-
};
|
|
268
258
|
}, []);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
259
|
+
return [valueRef, _value, setValue];
|
|
260
|
+
}function useSafeUpdate() {
|
|
261
|
+
var mountedRef = useMountedRef();
|
|
262
|
+
return useCallback(function (callback) {
|
|
263
|
+
if (mountedRef.current) {
|
|
264
|
+
callback();
|
|
265
|
+
}
|
|
266
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
274
267
|
}, []);
|
|
275
|
-
|
|
276
|
-
}export{clearIntervalRef,clearTimeoutRef,useAutoForceUpdate,useAutoUpdateLayoutRef,useAutoUpdateLayoutRefState,useAutoUpdateLayoutState,useAutoUpdateRef,useAutoUpdateRefState,useAutoUpdateState,useFirstSkipEffect,useFirstSkipLayoutEffect,useForceUpdate,useForwardRef,useIntervalRef,useLayoutPerformance,usePerformance,useTimeoutRef};
|
|
268
|
+
}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,35 +20,166 @@ 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;
|
|
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;
|
|
58
29
|
});
|
|
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;
|
|
39
|
+
}
|
|
40
|
+
}function clearTimeoutRef(ref) {
|
|
41
|
+
if (ref.current) {
|
|
42
|
+
clearTimeout(ref.current);
|
|
43
|
+
ref.current = undefined;
|
|
44
|
+
}
|
|
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));
|
|
59
82
|
}
|
|
60
83
|
else {
|
|
61
|
-
|
|
62
|
-
_setValue(finalNewValue);
|
|
84
|
+
setValue(function (old) { return old + 1; });
|
|
63
85
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
},
|
|
87
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
|
+
[delayMilliseconds]);
|
|
89
|
+
}
|
|
90
|
+
/********************************************************************************************************************
|
|
91
|
+
* ifUndefined
|
|
92
|
+
* ******************************************************************************************************************/
|
|
93
|
+
function ifUndefined(v, v2) {
|
|
94
|
+
return v === undefined ? v2 : v;
|
|
95
|
+
}function useForwardLayoutRef(ref, value, onSet, onUnset) {
|
|
96
|
+
react.useLayoutEffect(function () {
|
|
97
|
+
onSet === null || onSet === void 0 ? void 0 : onSet(value);
|
|
98
|
+
if (ref) {
|
|
99
|
+
if (typeof ref === 'function') {
|
|
100
|
+
ref(value);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
ref.current = value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return function () {
|
|
107
|
+
onUnset === null || onUnset === void 0 ? void 0 : onUnset();
|
|
108
|
+
if (ref) {
|
|
109
|
+
if (typeof ref === 'function') {
|
|
110
|
+
ref(null);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
ref.current = null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}, [onSet, onUnset, ref, value]);
|
|
118
|
+
}function useForwardRef(ref, value, onSet, onUnset) {
|
|
119
|
+
react.useEffect(function () {
|
|
120
|
+
onSet === null || onSet === void 0 ? void 0 : onSet(value);
|
|
121
|
+
if (ref) {
|
|
122
|
+
if (typeof ref === 'function') {
|
|
123
|
+
ref(value);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
ref.current = value;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return function () {
|
|
130
|
+
onUnset === null || onUnset === void 0 ? void 0 : onUnset();
|
|
131
|
+
if (ref) {
|
|
132
|
+
if (typeof ref === 'function') {
|
|
133
|
+
ref(null);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
ref.current = null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}, [onSet, onUnset, ref, value]);
|
|
141
|
+
}function useMountedRef(initialValue) {
|
|
142
|
+
if (initialValue === void 0) { initialValue = true; }
|
|
143
|
+
var isMountedRef = react.useRef(initialValue);
|
|
144
|
+
react.useEffect(function () {
|
|
145
|
+
return function () {
|
|
146
|
+
isMountedRef.current = false;
|
|
147
|
+
};
|
|
148
|
+
}, []);
|
|
149
|
+
return isMountedRef;
|
|
150
|
+
}function useLayoutPerformance(name) {
|
|
151
|
+
var beginTime = performance.now();
|
|
152
|
+
react.useLayoutEffect(function () {
|
|
153
|
+
console.log('Layout Performance', '-', name, performance.now() - beginTime);
|
|
154
|
+
});
|
|
155
|
+
}function usePerformance(name) {
|
|
156
|
+
var beginTime = performance.now();
|
|
157
|
+
react.useEffect(function () {
|
|
158
|
+
console.log('Performance', '-', name, performance.now() - beginTime);
|
|
159
|
+
});
|
|
160
|
+
}function useAutoUpdateLayoutRef(value) {
|
|
161
|
+
var valueRef = react.useRef(value);
|
|
162
|
+
var _a = react.useState(0), setUpdateValue = _a[1];
|
|
163
|
+
useFirstSkipLayoutEffect(function () {
|
|
164
|
+
valueRef.current = value;
|
|
165
|
+
setUpdateValue(function (prev) { return prev + 1; });
|
|
166
|
+
}, [value]);
|
|
167
|
+
return valueRef;
|
|
168
|
+
}function useAutoUpdateRef(value) {
|
|
169
|
+
var valueRef = react.useRef(value);
|
|
170
|
+
var _a = react.useState(0), setUpdateValue = _a[1];
|
|
171
|
+
useFirstSkipEffect(function () {
|
|
172
|
+
valueRef.current = value;
|
|
173
|
+
setUpdateValue(function (prev) { return prev + 1; });
|
|
174
|
+
}, [value]);
|
|
175
|
+
return valueRef;
|
|
67
176
|
}// 구현부
|
|
68
177
|
function useAutoUpdateRefState(state, callback) {
|
|
69
178
|
var valueRef = react.useRef(callback ? callback(state) : state);
|
|
70
179
|
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
71
180
|
useFirstSkipEffect(function () {
|
|
72
181
|
var newValue = callback ? callback(state) : state;
|
|
73
|
-
if (!equal
|
|
182
|
+
if (!equal(valueRef.current, newValue)) {
|
|
74
183
|
valueRef.current = newValue;
|
|
75
184
|
_setValue(newValue);
|
|
76
185
|
}
|
|
@@ -96,7 +205,7 @@ function useAutoUpdateRefState(state, callback) {
|
|
|
96
205
|
/********************************************************************************************************************
|
|
97
206
|
* equal
|
|
98
207
|
* ******************************************************************************************************************/
|
|
99
|
-
function equal
|
|
208
|
+
function equal(v1, v2) {
|
|
100
209
|
if (v1 === v2)
|
|
101
210
|
return true;
|
|
102
211
|
if (typeof v1 !== typeof v2)
|
|
@@ -110,15 +219,10 @@ function equal$1(v1, v2) {
|
|
|
110
219
|
return v1 === v2;
|
|
111
220
|
}
|
|
112
221
|
}// 구현부
|
|
113
|
-
function
|
|
114
|
-
var valueRef = react.useRef(callback ? callback(state) : state);
|
|
222
|
+
function useAutoUpdateState(state, callback) {
|
|
115
223
|
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (!equal(valueRef.current, newValue)) {
|
|
119
|
-
valueRef.current = newValue;
|
|
120
|
-
_setValue(newValue);
|
|
121
|
-
}
|
|
224
|
+
useFirstSkipEffect(function () {
|
|
225
|
+
_setValue(callback ? callback(state) : state);
|
|
122
226
|
}, [state]);
|
|
123
227
|
var setValue = react.useCallback(function (newValue, skipCallback) {
|
|
124
228
|
var finalNewValue = newValue;
|
|
@@ -133,144 +237,32 @@ function useAutoUpdateLayoutRefState(state, callback) {
|
|
|
133
237
|
finalNewValue = !skipCallback && callback ? callback(finalNewValue) : finalNewValue;
|
|
134
238
|
_setValue(finalNewValue);
|
|
135
239
|
}
|
|
136
|
-
valueRef.current = finalNewValue;
|
|
137
240
|
return finalNewValue;
|
|
138
241
|
}, [callback]);
|
|
139
|
-
return [
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
}
|
|
157
|
-
}function useForwardRef(ref, value) {
|
|
158
|
-
react.useLayoutEffect(function () {
|
|
159
|
-
if (ref) {
|
|
160
|
-
if (typeof ref === 'function') {
|
|
161
|
-
ref(value);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
ref.current = value;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return function () {
|
|
168
|
-
if (ref) {
|
|
169
|
-
if (typeof ref === 'function') {
|
|
170
|
-
ref(null);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
ref.current = null;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
}, [ref, value]);
|
|
178
|
-
}function useAutoUpdateRef(value) {
|
|
179
|
-
var valueRef = react.useRef(value);
|
|
180
|
-
var _a = react.useState(0), setUpdateValue = _a[1];
|
|
181
|
-
useFirstSkipEffect(function () {
|
|
182
|
-
valueRef.current = value;
|
|
183
|
-
setUpdateValue(function (prev) { return prev + 1; });
|
|
184
|
-
}, [value]);
|
|
185
|
-
return valueRef;
|
|
186
|
-
}function useAutoUpdateLayoutRef(value) {
|
|
187
|
-
var valueRef = react.useRef(value);
|
|
188
|
-
var _a = react.useState(0), setUpdateValue = _a[1];
|
|
189
|
-
useFirstSkipLayoutEffect(function () {
|
|
190
|
-
valueRef.current = value;
|
|
191
|
-
setUpdateValue(function (prev) { return prev + 1; });
|
|
192
|
-
}, [value]);
|
|
193
|
-
return valueRef;
|
|
194
|
-
}function usePerformance(name) {
|
|
195
|
-
var beginTime = performance.now();
|
|
196
|
-
react.useEffect(function () {
|
|
197
|
-
console.log('Performance', '-', name, performance.now() - beginTime);
|
|
198
|
-
});
|
|
199
|
-
}function useLayoutPerformance(name) {
|
|
200
|
-
var beginTime = performance.now();
|
|
201
|
-
react.useLayoutEffect(function () {
|
|
202
|
-
console.log('Layout Performance', '-', name, performance.now() - beginTime);
|
|
203
|
-
});
|
|
204
|
-
}function useAutoForceUpdate(interval) {
|
|
205
|
-
var _a = react.useState(0), setTick = _a[1];
|
|
206
|
-
react.useEffect(function () {
|
|
207
|
-
var tm = setInterval(function () {
|
|
208
|
-
setTick(function (old) {
|
|
209
|
-
return old + 1;
|
|
242
|
+
return [_value, setValue];
|
|
243
|
+
}function useRefState(initialState) {
|
|
244
|
+
var _a = react.useState(initialState), _value = _a[0], _setValue = _a[1];
|
|
245
|
+
var valueRef = react.useRef(_value);
|
|
246
|
+
var setValue = react.useCallback(function (value) {
|
|
247
|
+
if (typeof value === 'function') {
|
|
248
|
+
_setValue(function (prev) {
|
|
249
|
+
var finalValue = value(prev);
|
|
250
|
+
valueRef.current = finalValue;
|
|
251
|
+
return finalValue;
|
|
210
252
|
});
|
|
211
|
-
}, interval);
|
|
212
|
-
return function () {
|
|
213
|
-
clearInterval(tm);
|
|
214
|
-
};
|
|
215
|
-
}, [interval]);
|
|
216
|
-
}function clearTimeoutRef(ref) {
|
|
217
|
-
if (ref.current) {
|
|
218
|
-
clearTimeout(ref.current);
|
|
219
|
-
ref.current = undefined;
|
|
220
|
-
}
|
|
221
|
-
}function useTimeoutRef() {
|
|
222
|
-
var ref = react.useRef(undefined);
|
|
223
|
-
react.useEffect(function () {
|
|
224
|
-
return function () {
|
|
225
|
-
clearTimeoutRef(ref);
|
|
226
|
-
};
|
|
227
|
-
}, []);
|
|
228
|
-
var setTimeoutFunc = react.useCallback(function (callback, ms) {
|
|
229
|
-
clearTimeoutRef(ref);
|
|
230
|
-
ref.current = setTimeout(function () {
|
|
231
|
-
ref.current = undefined;
|
|
232
|
-
callback();
|
|
233
|
-
}, ms);
|
|
234
|
-
}, []);
|
|
235
|
-
return [ref, setTimeoutFunc];
|
|
236
|
-
}function useForceUpdate(delayMilliseconds) {
|
|
237
|
-
var _a = useTimeoutRef(), setDelayTimeout = _a[1];
|
|
238
|
-
var _b = react.useState(0), setValue = _b[1];
|
|
239
|
-
return react.useCallback(function (delay) {
|
|
240
|
-
if (ifUndefined(delay, delayMilliseconds) !== undefined) {
|
|
241
|
-
setDelayTimeout(function () {
|
|
242
|
-
setValue(function (old) { return old + 1; });
|
|
243
|
-
}, ifUndefined(delay, delayMilliseconds));
|
|
244
253
|
}
|
|
245
254
|
else {
|
|
246
|
-
|
|
255
|
+
valueRef.current = value;
|
|
256
|
+
_setValue(value);
|
|
247
257
|
}
|
|
248
|
-
},
|
|
249
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
250
|
-
[delayMilliseconds]);
|
|
251
|
-
}
|
|
252
|
-
/********************************************************************************************************************
|
|
253
|
-
* ifUndefined
|
|
254
|
-
* ******************************************************************************************************************/
|
|
255
|
-
function ifUndefined(v, v2) {
|
|
256
|
-
return v === undefined ? v2 : v;
|
|
257
|
-
}function clearIntervalRef(ref) {
|
|
258
|
-
if (ref.current) {
|
|
259
|
-
clearInterval(ref.current);
|
|
260
|
-
ref.current = undefined;
|
|
261
|
-
}
|
|
262
|
-
}function useIntervalRef() {
|
|
263
|
-
var ref = react.useRef(undefined);
|
|
264
|
-
react.useEffect(function () {
|
|
265
|
-
return function () {
|
|
266
|
-
clearIntervalRef(ref);
|
|
267
|
-
};
|
|
268
258
|
}, []);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
259
|
+
return [valueRef, _value, setValue];
|
|
260
|
+
}function useSafeUpdate() {
|
|
261
|
+
var mountedRef = useMountedRef();
|
|
262
|
+
return react.useCallback(function (callback) {
|
|
263
|
+
if (mountedRef.current) {
|
|
264
|
+
callback();
|
|
265
|
+
}
|
|
266
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
274
267
|
}, []);
|
|
275
|
-
|
|
276
|
-
}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.useForwardRef=useForwardRef;exports.useIntervalRef=useIntervalRef;exports.useLayoutPerformance=useLayoutPerformance;exports.usePerformance=usePerformance;exports.useTimeoutRef=useTimeoutRef;
|
|
268
|
+
}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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pdg/react-hook",
|
|
3
3
|
"title": "React Hook",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.32",
|
|
5
5
|
"description": "React Hook",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -25,8 +25,13 @@
|
|
|
25
25
|
"dev-prd-lib": "cd examples && npm run dev-prd-lib",
|
|
26
26
|
"build": "rollup -c --bundleConfigAsCjs",
|
|
27
27
|
"pub": "npm i && npm run build && npm publish --access=public && rm ./.git/hooks/pre-commit",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"git:commit": "node .git-commit.cjs",
|
|
29
|
+
"git:push": "git push",
|
|
30
|
+
"git:commit:push": "npm run git:commit && npm run git:push",
|
|
31
|
+
"reset:gitignore": "git rm -r --cached . && git add .",
|
|
32
|
+
"reinstall": "npm run reinstall:module",
|
|
33
|
+
"reinstall:module": "rm -rf node_modules && rm -f package-lock.json && npm i",
|
|
34
|
+
"lint": "eslint './src/**/*.{ts,tsx}'"
|
|
30
35
|
},
|
|
31
36
|
"author": "YOUNG CHUL PARK",
|
|
32
37
|
"license": "MIT",
|
|
@@ -41,26 +46,26 @@
|
|
|
41
46
|
"react": ">=17.0.0"
|
|
42
47
|
},
|
|
43
48
|
"devDependencies": {
|
|
49
|
+
"@eslint/js": "^9.28.0",
|
|
44
50
|
"@rollup/plugin-commonjs": "^28.0.3",
|
|
45
51
|
"@rollup/plugin-eslint": "^9.0.5",
|
|
46
52
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
47
|
-
"@types/node": "^22.
|
|
53
|
+
"@types/node": "^22.15.29",
|
|
48
54
|
"@types/react": "^19.1.6",
|
|
49
|
-
"@typescript-eslint/
|
|
50
|
-
"
|
|
51
|
-
"eslint": "
|
|
52
|
-
"eslint-
|
|
53
|
-
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
54
|
-
"eslint-plugin-prettier": "^5.2.6",
|
|
55
|
+
"@typescript-eslint/parser": "^8.33.0",
|
|
56
|
+
"eslint": "9.28.0",
|
|
57
|
+
"eslint-config-prettier": "^10.1.5",
|
|
58
|
+
"eslint-plugin-prettier": "^5.4.1",
|
|
55
59
|
"eslint-plugin-react": "^7.37.5",
|
|
56
60
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
57
61
|
"prettier": "^3.5.3",
|
|
58
|
-
"rollup": "^4.
|
|
62
|
+
"rollup": "^4.41.1",
|
|
59
63
|
"rollup-plugin-delete": "^2.2.0",
|
|
60
64
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
61
|
-
"rollup-plugin-
|
|
65
|
+
"rollup-plugin-sass": "^1.15.2",
|
|
62
66
|
"rollup-plugin-typescript2": "^0.36.0",
|
|
63
|
-
"sass": "^1.
|
|
64
|
-
"typescript": "^5.8.3"
|
|
67
|
+
"sass": "^1.89.1",
|
|
68
|
+
"typescript": "^5.8.3",
|
|
69
|
+
"typescript-eslint": "^8.33.0"
|
|
65
70
|
}
|
|
66
71
|
}
|
|
@@ -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;
|