@pdg/react-hook 2.0.16 → 2.0.18

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.
@@ -1 +1,4 @@
1
+ export * from './useEventEffect';
2
+ export * from './useEventLayoutEffect';
1
3
  export * from './useFirstSkipEffect';
4
+ export * from './useFirstSkipLayoutEffect';
@@ -0,0 +1,2 @@
1
+ import { DependencyList, EffectCallback } from 'react';
2
+ export declare const useEventEffect: (effectEventCallback: EffectCallback, deps?: DependencyList) => void;
@@ -0,0 +1,2 @@
1
+ import { DependencyList, EffectCallback } from 'react';
2
+ export declare const useEventLayoutEffect: (effectEventCallback: EffectCallback, deps?: DependencyList) => void;
@@ -0,0 +1,2 @@
1
+ import { DependencyList, EffectCallback } from 'react';
2
+ export declare const useFirstSkipLayoutEffect: (effectEventCallback: EffectCallback, deps: DependencyList) => void;
@@ -12,7 +12,7 @@ const pluginRules = {
12
12
  if (!depsNode || depsNode.type !== 'ArrayExpression') {
13
13
  context.report({
14
14
  node: node.callee,
15
- message: 'useChanged 훅의 첫 번째 인자는 반드시 배열 리터럴(예: [a, b]) 형태여야 합니다.',
15
+ message: `${callbackName} 훅의 첫 번째 인자는 반드시 배열 리터럴(예: [a, b]) 형태여야 합니다.`,
16
16
  });
17
17
  return;
18
18
  }
@@ -34,13 +34,25 @@ const pluginRules = {
34
34
  const fakeNode = Object.assign(Object.assign({}, node), { arguments: [fakeCallback, depsNode] });
35
35
  return originalRule.CallExpression(fakeNode);
36
36
  }
37
- /** useFirstSkipEffect */
38
- if (callbackName === 'useFirstSkipEffect') {
37
+ /** useEventEffect, useEventLayoutEffect */
38
+ if (['useEventEffect', 'useEventLayoutEffect'].includes(callbackName)) {
39
+ const deps = node.arguments[1];
40
+ if (deps && deps.type !== 'ArrayExpression') {
41
+ context.report({
42
+ node: node.callee,
43
+ message: `${callbackName} 훅의 두 번째 인자는 반드시 배열 리터럴(예: [a, b]) 형태여야 합니다.`,
44
+ });
45
+ return;
46
+ }
47
+ return originalRule.CallExpression(node);
48
+ }
49
+ /** useFirstSkipEffect, useFirstSkipLayoutEffect */
50
+ if (['useFirstSkipEffect', 'useFirstSkipLayoutEffect'].includes(callbackName)) {
39
51
  const deps = node.arguments[1];
40
52
  if (!deps || deps.type !== 'ArrayExpression') {
41
53
  context.report({
42
54
  node: node.callee,
43
- message: 'useFirstSkipEffect 훅의 두 번째 인자는 반드시 배열 리터럴(예: [a, b]) 형태여야 합니다.',
55
+ message: `${callbackName} 훅의 두 번째 인자는 반드시 배열 리터럴(예: [a, b]) 형태여야 합니다.`,
44
56
  });
45
57
  return;
46
58
  }
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import {useState,useEffectEvent,useRef,useEffect,useLayoutEffect,useImperativeHandle}from'react';import {c}from'react/compiler-runtime';function _arrayLikeToArray(r, a) {
1
+ import {useState,useEffectEvent,useEffect,useLayoutEffect,useRef,useImperativeHandle}from'react';import {c}from'react/compiler-runtime';function _arrayLikeToArray(r, a) {
2
2
  (null == a || a > r.length) && (a = r.length);
3
3
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
4
4
  return n;
@@ -68,6 +68,34 @@ function _unsupportedIterableToArray(r, a) {
68
68
  setPrevValues(deps);
69
69
  }
70
70
  return changed;
71
+ };var useEventEffect = function useEventEffect(effectEventCallback, deps) {
72
+ var $ = c(2);
73
+ var effectEvent = useEffectEvent(effectEventCallback);
74
+ var t0;
75
+ if ($[0] !== effectEvent) {
76
+ t0 = function t0() {
77
+ return effectEvent();
78
+ };
79
+ $[0] = effectEvent;
80
+ $[1] = t0;
81
+ } else {
82
+ t0 = $[1];
83
+ }
84
+ useEffect(t0, deps);
85
+ };var useEventLayoutEffect = function useEventLayoutEffect(effectEventCallback, deps) {
86
+ var $ = c(2);
87
+ var effectEvent = useEffectEvent(effectEventCallback);
88
+ var t0;
89
+ if ($[0] !== effectEvent) {
90
+ t0 = function t0() {
91
+ return effectEvent();
92
+ };
93
+ $[0] = effectEvent;
94
+ $[1] = t0;
95
+ } else {
96
+ t0 = $[1];
97
+ }
98
+ useLayoutEffect(t0, deps);
71
99
  };var useFirstSkipEffect = function useFirstSkipEffect(effectEventCallback, deps) {
72
100
  var $ = c(2);
73
101
  var effectEvent = useEffectEvent(effectEventCallback);
@@ -87,6 +115,25 @@ function _unsupportedIterableToArray(r, a) {
87
115
  t0 = $[1];
88
116
  }
89
117
  useEffect(t0, deps);
118
+ };var useFirstSkipLayoutEffect = function useFirstSkipLayoutEffect(effectEventCallback, deps) {
119
+ var $ = c(2);
120
+ var effectEvent = useEffectEvent(effectEventCallback);
121
+ var firstSkipRef = useRef(true);
122
+ var t0;
123
+ if ($[0] !== effectEvent) {
124
+ t0 = function t0() {
125
+ if (firstSkipRef.current) {
126
+ firstSkipRef.current = false;
127
+ } else {
128
+ return effectEvent();
129
+ }
130
+ };
131
+ $[0] = effectEvent;
132
+ $[1] = t0;
133
+ } else {
134
+ t0 = $[1];
135
+ }
136
+ useLayoutEffect(t0, deps);
90
137
  };function useMountedRef(t0) {
91
138
  var $ = c(2);
92
139
  var initialValue = t0 === undefined ? true : t0;
@@ -247,4 +294,4 @@ function _unsupportedIterableToArray(r, a) {
247
294
  t3 = $[7];
248
295
  }
249
296
  useEffect(t2, t3);
250
- }export{clearIntervalRef,clearTimeoutRef,useAutoUpdateRef,useChanged,useFirstSkipEffect,useForwardRef,useIntervalRef,useMountedRef,useTimeoutRef};
297
+ }export{clearIntervalRef,clearTimeoutRef,useAutoUpdateRef,useChanged,useEventEffect,useEventLayoutEffect,useFirstSkipEffect,useFirstSkipLayoutEffect,useForwardRef,useIntervalRef,useMountedRef,useTimeoutRef};
package/dist/index.js CHANGED
@@ -68,6 +68,34 @@ function _unsupportedIterableToArray(r, a) {
68
68
  setPrevValues(deps);
69
69
  }
70
70
  return changed;
71
+ };var useEventEffect = function useEventEffect(effectEventCallback, deps) {
72
+ var $ = compilerRuntime.c(2);
73
+ var effectEvent = react.useEffectEvent(effectEventCallback);
74
+ var t0;
75
+ if ($[0] !== effectEvent) {
76
+ t0 = function t0() {
77
+ return effectEvent();
78
+ };
79
+ $[0] = effectEvent;
80
+ $[1] = t0;
81
+ } else {
82
+ t0 = $[1];
83
+ }
84
+ react.useEffect(t0, deps);
85
+ };var useEventLayoutEffect = function useEventLayoutEffect(effectEventCallback, deps) {
86
+ var $ = compilerRuntime.c(2);
87
+ var effectEvent = react.useEffectEvent(effectEventCallback);
88
+ var t0;
89
+ if ($[0] !== effectEvent) {
90
+ t0 = function t0() {
91
+ return effectEvent();
92
+ };
93
+ $[0] = effectEvent;
94
+ $[1] = t0;
95
+ } else {
96
+ t0 = $[1];
97
+ }
98
+ react.useLayoutEffect(t0, deps);
71
99
  };var useFirstSkipEffect = function useFirstSkipEffect(effectEventCallback, deps) {
72
100
  var $ = compilerRuntime.c(2);
73
101
  var effectEvent = react.useEffectEvent(effectEventCallback);
@@ -87,6 +115,25 @@ function _unsupportedIterableToArray(r, a) {
87
115
  t0 = $[1];
88
116
  }
89
117
  react.useEffect(t0, deps);
118
+ };var useFirstSkipLayoutEffect = function useFirstSkipLayoutEffect(effectEventCallback, deps) {
119
+ var $ = compilerRuntime.c(2);
120
+ var effectEvent = react.useEffectEvent(effectEventCallback);
121
+ var firstSkipRef = react.useRef(true);
122
+ var t0;
123
+ if ($[0] !== effectEvent) {
124
+ t0 = function t0() {
125
+ if (firstSkipRef.current) {
126
+ firstSkipRef.current = false;
127
+ } else {
128
+ return effectEvent();
129
+ }
130
+ };
131
+ $[0] = effectEvent;
132
+ $[1] = t0;
133
+ } else {
134
+ t0 = $[1];
135
+ }
136
+ react.useLayoutEffect(t0, deps);
90
137
  };function useMountedRef(t0) {
91
138
  var $ = compilerRuntime.c(2);
92
139
  var initialValue = t0 === undefined ? true : t0;
@@ -247,4 +294,4 @@ function _unsupportedIterableToArray(r, a) {
247
294
  t3 = $[7];
248
295
  }
249
296
  react.useEffect(t2, t3);
250
- }exports.clearIntervalRef=clearIntervalRef;exports.clearTimeoutRef=clearTimeoutRef;exports.useAutoUpdateRef=useAutoUpdateRef;exports.useChanged=useChanged;exports.useFirstSkipEffect=useFirstSkipEffect;exports.useForwardRef=useForwardRef;exports.useIntervalRef=useIntervalRef;exports.useMountedRef=useMountedRef;exports.useTimeoutRef=useTimeoutRef;
297
+ }exports.clearIntervalRef=clearIntervalRef;exports.clearTimeoutRef=clearTimeoutRef;exports.useAutoUpdateRef=useAutoUpdateRef;exports.useChanged=useChanged;exports.useEventEffect=useEventEffect;exports.useEventLayoutEffect=useEventLayoutEffect;exports.useFirstSkipEffect=useFirstSkipEffect;exports.useFirstSkipLayoutEffect=useFirstSkipLayoutEffect;exports.useForwardRef=useForwardRef;exports.useIntervalRef=useIntervalRef;exports.useMountedRef=useMountedRef;exports.useTimeoutRef=useTimeoutRef;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pdg/react-hook",
3
3
  "title": "Typescript React Hook Module",
4
4
  "description": "Typescript React Hook Module",
5
- "version": "2.0.16",
5
+ "version": "2.0.18",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "module": "./dist/index.esm.js",