@pdg/react-hook 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +40 -8
- package/dist/index.js +40 -8
- package/dist/useAutoUpdateLayoutRefState.d.ts +7 -0
- package/dist/useAutoUpdateLayoutState.d.ts +2 -3
- package/dist/useAutoUpdateRefState.d.ts +7 -0
- package/dist/useAutoUpdateState.d.ts +2 -3
- package/package.json +3 -2
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,3 +2,5 @@ export { default as useAutoUpdateState } from './useAutoUpdateState';
|
|
|
2
2
|
export { default as useAutoUpdateLayoutState } from './useAutoUpdateLayoutState';
|
|
3
3
|
export { default as useFirstSkipEffect } from './useFirstSkipEffect';
|
|
4
4
|
export { default as useFirstSkipLayoutEffect } from './useFirstSkipLayoutEffect';
|
|
5
|
+
export { default as useAutoUpdateRefState } from './useAutoUpdateRefState';
|
|
6
|
+
export { default as useAutoUpdateLayoutRefState } from './useAutoUpdateLayoutRefState';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useRef,useEffect,useState,useCallback,useLayoutEffect}from'react';function useFirstSkipEffect(effect, deps) {
|
|
1
|
+
import {useRef,useEffect,useState,useCallback,useLayoutEffect}from'react';import {equal}from'@pdg/util';function useFirstSkipEffect(effect, deps) {
|
|
2
2
|
var firstRef = useRef(true);
|
|
3
3
|
useEffect(function () {
|
|
4
4
|
if (firstRef.current) {
|
|
@@ -8,9 +8,8 @@ import {useRef,useEffect,useState,useCallback,useLayoutEffect}from'react';functi
|
|
|
8
8
|
effect();
|
|
9
9
|
}
|
|
10
10
|
}, deps);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
var callback = typeof p1 === 'function' ? p1 : p2;
|
|
11
|
+
}// 구현부
|
|
12
|
+
function useAutoUpdateState(state, callback) {
|
|
14
13
|
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
15
14
|
useFirstSkipEffect(function () {
|
|
16
15
|
_setValue(callback ? callback(state) : state);
|
|
@@ -29,9 +28,8 @@ import {useRef,useEffect,useState,useCallback,useLayoutEffect}from'react';functi
|
|
|
29
28
|
effect();
|
|
30
29
|
}
|
|
31
30
|
}, deps);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var callback = typeof p1 === 'function' ? p1 : p2;
|
|
31
|
+
}// 구현부
|
|
32
|
+
function useAutoUpdateLayoutState(state, callback) {
|
|
35
33
|
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
36
34
|
useFirstSkipLayoutEffect(function () {
|
|
37
35
|
_setValue(callback ? callback(state) : state);
|
|
@@ -40,4 +38,38 @@ import {useRef,useEffect,useState,useCallback,useLayoutEffect}from'react';functi
|
|
|
40
38
|
_setValue(callback ? callback(newValue) : newValue);
|
|
41
39
|
}, [callback]);
|
|
42
40
|
return [_value, setValue];
|
|
43
|
-
}
|
|
41
|
+
}// 구현부
|
|
42
|
+
function useAutoUpdateRefState(state, callback) {
|
|
43
|
+
var valueRef = useRef(callback ? callback(state) : state);
|
|
44
|
+
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
45
|
+
useFirstSkipEffect(function () {
|
|
46
|
+
var newValue = callback ? callback(state) : state;
|
|
47
|
+
if (!equal(valueRef.current, newValue)) {
|
|
48
|
+
valueRef.current = newValue;
|
|
49
|
+
_setValue(newValue);
|
|
50
|
+
}
|
|
51
|
+
}, [state, callback]);
|
|
52
|
+
var setValue = useCallback(function (newValue) {
|
|
53
|
+
var finalNewValue = callback ? callback(newValue) : newValue;
|
|
54
|
+
valueRef.current = finalNewValue;
|
|
55
|
+
_setValue(finalNewValue);
|
|
56
|
+
}, [callback]);
|
|
57
|
+
return [valueRef, _value, setValue];
|
|
58
|
+
}// 구현부
|
|
59
|
+
function useAutoUpdateLayoutRefState(state, callback) {
|
|
60
|
+
var valueRef = useRef(callback ? callback(state) : state);
|
|
61
|
+
var _a = useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
62
|
+
useFirstSkipLayoutEffect(function () {
|
|
63
|
+
var newValue = callback ? callback(state) : state;
|
|
64
|
+
if (!equal(valueRef.current, newValue)) {
|
|
65
|
+
valueRef.current = newValue;
|
|
66
|
+
_setValue(newValue);
|
|
67
|
+
}
|
|
68
|
+
}, [state, callback]);
|
|
69
|
+
var setValue = useCallback(function (newValue) {
|
|
70
|
+
var finalNewValue = callback ? callback(newValue) : newValue;
|
|
71
|
+
valueRef.current = finalNewValue;
|
|
72
|
+
_setValue(finalNewValue);
|
|
73
|
+
}, [callback]);
|
|
74
|
+
return [valueRef, _value, setValue];
|
|
75
|
+
}export{useAutoUpdateLayoutRefState,useAutoUpdateLayoutState,useAutoUpdateRefState,useAutoUpdateState,useFirstSkipEffect,useFirstSkipLayoutEffect};
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var react=require('react');function useFirstSkipEffect(effect, deps) {
|
|
1
|
+
'use strict';var react=require('react'),util=require('@pdg/util');function useFirstSkipEffect(effect, deps) {
|
|
2
2
|
var firstRef = react.useRef(true);
|
|
3
3
|
react.useEffect(function () {
|
|
4
4
|
if (firstRef.current) {
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
effect();
|
|
9
9
|
}
|
|
10
10
|
}, deps);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
var callback = typeof p1 === 'function' ? p1 : p2;
|
|
11
|
+
}// 구현부
|
|
12
|
+
function useAutoUpdateState(state, callback) {
|
|
14
13
|
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
15
14
|
useFirstSkipEffect(function () {
|
|
16
15
|
_setValue(callback ? callback(state) : state);
|
|
@@ -29,9 +28,8 @@
|
|
|
29
28
|
effect();
|
|
30
29
|
}
|
|
31
30
|
}, deps);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var callback = typeof p1 === 'function' ? p1 : p2;
|
|
31
|
+
}// 구현부
|
|
32
|
+
function useAutoUpdateLayoutState(state, callback) {
|
|
35
33
|
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
36
34
|
useFirstSkipLayoutEffect(function () {
|
|
37
35
|
_setValue(callback ? callback(state) : state);
|
|
@@ -40,4 +38,38 @@
|
|
|
40
38
|
_setValue(callback ? callback(newValue) : newValue);
|
|
41
39
|
}, [callback]);
|
|
42
40
|
return [_value, setValue];
|
|
43
|
-
}
|
|
41
|
+
}// 구현부
|
|
42
|
+
function useAutoUpdateRefState(state, callback) {
|
|
43
|
+
var valueRef = react.useRef(callback ? callback(state) : state);
|
|
44
|
+
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
45
|
+
useFirstSkipEffect(function () {
|
|
46
|
+
var newValue = callback ? callback(state) : state;
|
|
47
|
+
if (!util.equal(valueRef.current, newValue)) {
|
|
48
|
+
valueRef.current = newValue;
|
|
49
|
+
_setValue(newValue);
|
|
50
|
+
}
|
|
51
|
+
}, [state, callback]);
|
|
52
|
+
var setValue = react.useCallback(function (newValue) {
|
|
53
|
+
var finalNewValue = callback ? callback(newValue) : newValue;
|
|
54
|
+
valueRef.current = finalNewValue;
|
|
55
|
+
_setValue(finalNewValue);
|
|
56
|
+
}, [callback]);
|
|
57
|
+
return [valueRef, _value, setValue];
|
|
58
|
+
}// 구현부
|
|
59
|
+
function useAutoUpdateLayoutRefState(state, callback) {
|
|
60
|
+
var valueRef = react.useRef(callback ? callback(state) : state);
|
|
61
|
+
var _a = react.useState(function () { return (callback ? callback(state) : state); }), _value = _a[0], _setValue = _a[1];
|
|
62
|
+
useFirstSkipLayoutEffect(function () {
|
|
63
|
+
var newValue = callback ? callback(state) : state;
|
|
64
|
+
if (!util.equal(valueRef.current, newValue)) {
|
|
65
|
+
valueRef.current = newValue;
|
|
66
|
+
_setValue(newValue);
|
|
67
|
+
}
|
|
68
|
+
}, [state, callback]);
|
|
69
|
+
var setValue = react.useCallback(function (newValue) {
|
|
70
|
+
var finalNewValue = callback ? callback(newValue) : newValue;
|
|
71
|
+
valueRef.current = finalNewValue;
|
|
72
|
+
_setValue(finalNewValue);
|
|
73
|
+
}, [callback]);
|
|
74
|
+
return [valueRef, _value, setValue];
|
|
75
|
+
}exports.useAutoUpdateLayoutRefState=useAutoUpdateLayoutRefState;exports.useAutoUpdateLayoutState=useAutoUpdateLayoutState;exports.useAutoUpdateRefState=useAutoUpdateRefState;exports.useAutoUpdateState=useAutoUpdateState;exports.useFirstSkipEffect=useFirstSkipEffect;exports.useFirstSkipLayoutEffect=useFirstSkipLayoutEffect;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch, MutableRefObject, SetStateAction } from 'react';
|
|
2
|
+
export default function useAutoUpdateLayoutRefState<T>(state: Exclude<T, (...args: any[]) => any>): [MutableRefObject<T>, T, Dispatch<SetStateAction<T>>];
|
|
3
|
+
export default function useAutoUpdateLayoutRefState<T = never, StateT = never>(state: Exclude<StateT, (...args: any[]) => any>, callback: (state: T | StateT) => T extends never ? StateT : T): [
|
|
4
|
+
MutableRefObject<T extends never ? StateT : T>,
|
|
5
|
+
T extends never ? StateT : T,
|
|
6
|
+
Dispatch<SetStateAction<T extends never ? StateT : T>>
|
|
7
|
+
];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
-
export default function useAutoUpdateLayoutState<T>(state: T): [T, Dispatch<SetStateAction<T>>];
|
|
3
|
-
export default function useAutoUpdateLayoutState<T>(state:
|
|
4
|
-
export default function useAutoUpdateLayoutState<T>(callback: () => T): [T, Dispatch<SetStateAction<T>>];
|
|
2
|
+
export default function useAutoUpdateLayoutState<T>(state: Exclude<T, (...args: any[]) => any>): [T, Dispatch<SetStateAction<T>>];
|
|
3
|
+
export default function useAutoUpdateLayoutState<T = never, StateT = never>(state: Exclude<StateT, (...args: any[]) => any>, callback: (state: T | StateT) => T extends never ? StateT : T): [T extends never ? StateT : T, Dispatch<SetStateAction<T extends never ? StateT : T>>];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch, MutableRefObject, SetStateAction } from 'react';
|
|
2
|
+
export default function useAutoUpdateRefState<T>(state: Exclude<T, (...args: any[]) => any>): [MutableRefObject<T>, T, Dispatch<SetStateAction<T>>];
|
|
3
|
+
export default function useAutoUpdateRefState<T = never, StateT = never>(state: Exclude<StateT, (...args: any[]) => any>, callback: (state: T | StateT) => T extends never ? StateT : T): [
|
|
4
|
+
MutableRefObject<T extends never ? StateT : T>,
|
|
5
|
+
T extends never ? StateT : T,
|
|
6
|
+
Dispatch<SetStateAction<T extends never ? StateT : T>>
|
|
7
|
+
];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
-
export default function useAutoUpdateState<T>(state: T): [T, Dispatch<SetStateAction<T>>];
|
|
3
|
-
export default function useAutoUpdateState<T>(state:
|
|
4
|
-
export default function useAutoUpdateState<T>(callback: () => T): [T, Dispatch<SetStateAction<T>>];
|
|
2
|
+
export default function useAutoUpdateState<T>(state: Exclude<T, (...args: any[]) => any>): [T, Dispatch<SetStateAction<T>>];
|
|
3
|
+
export default function useAutoUpdateState<T = never, StateT = never>(state: Exclude<StateT, (...args: any[]) => any>, callback: (state: T | StateT) => T extends never ? StateT : T): [T extends never ? StateT : T, Dispatch<SetStateAction<T extends never ? StateT : T>>];
|
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.10",
|
|
5
5
|
"description": "React Hook",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"dev": "cd examples && npm run dev",
|
|
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
28
|
"lint": "eslint './src/**/*.{ts,tsx}'",
|
|
29
29
|
"reinstall-module": "rm -rf node_modules && rm -f package-lock.json && npm i"
|
|
30
30
|
},
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"javascript"
|
|
39
39
|
],
|
|
40
40
|
"peerDependencies": {
|
|
41
|
+
"@pdg/util": "^1.0.19",
|
|
41
42
|
"@types/react": "^17.0.0 || ^18.0.0",
|
|
42
43
|
"react": "^17.0.0 || ^18.0.0",
|
|
43
44
|
"react-dom": "^17.0.0 || ^18.0.0"
|