@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 CHANGED
@@ -4,5 +4,5 @@ Admin Layout for React
4
4
 
5
5
  ## 설치
6
6
  ```
7
- npm install -D @pdg/react-hook
7
+ npm install -D @pdg/react-hook @pdg/util
8
8
  ```
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
- }function useAutoUpdateState(p1, p2) {
12
- var state = typeof p1 === 'function' ? undefined : p1;
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
- }function useAutoUpdateLayoutState(p1, p2) {
33
- var state = typeof p1 === 'function' ? undefined : p1;
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
- }export{useAutoUpdateLayoutState,useAutoUpdateState,useFirstSkipEffect,useFirstSkipLayoutEffect};
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
- }function useAutoUpdateState(p1, p2) {
12
- var state = typeof p1 === 'function' ? undefined : p1;
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
- }function useAutoUpdateLayoutState(p1, p2) {
33
- var state = typeof p1 === 'function' ? undefined : p1;
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
- }exports.useAutoUpdateLayoutState=useAutoUpdateLayoutState;exports.useAutoUpdateState=useAutoUpdateState;exports.useFirstSkipEffect=useFirstSkipEffect;exports.useFirstSkipLayoutEffect=useFirstSkipLayoutEffect;
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: T, callback: (state: T) => T): [T, Dispatch<SetStateAction<T>>];
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: T, callback: (state: T) => T): [T, Dispatch<SetStateAction<T>>];
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.8",
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
- "publish": "npm publish --access=public",
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"