@take-out/hooks 0.4.3 → 0.4.5
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/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/useClickOutside.cjs +24 -15
- package/dist/cjs/useClickOutside.native.js +34 -22
- package/dist/cjs/useClickOutside.native.js.map +1 -1
- package/dist/cjs/useDebouncePrepend.cjs +47 -27
- package/dist/cjs/useDebouncePrepend.native.js +48 -32
- package/dist/cjs/useDebouncePrepend.native.js.map +1 -1
- package/dist/cjs/useDeepMemoizedObject.cjs +154 -95
- package/dist/cjs/useDeepMemoizedObject.native.js +177 -111
- package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -1
- package/dist/cjs/useDeepMemoizedObject.test.cjs +269 -199
- package/dist/cjs/useDeepMemoizedObject.test.native.js +265 -202
- package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -1
- package/dist/cjs/useDeferredBoolean.cjs +20 -15
- package/dist/cjs/useDeferredBoolean.native.js +22 -17
- package/dist/cjs/useDeferredBoolean.native.js.map +1 -1
- package/dist/cjs/useEffectOnceGlobally.cjs +24 -12
- package/dist/cjs/useEffectOnceGlobally.native.js +27 -15
- package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -1
- package/dist/cjs/useEvent.cjs +14 -11
- package/dist/cjs/useEvent.native.js +17 -12
- package/dist/cjs/useEvent.native.js.map +1 -1
- package/dist/cjs/useIsMounted.cjs +17 -14
- package/dist/cjs/useIsMounted.native.js +20 -17
- package/dist/cjs/useIsMounted.native.js.map +1 -1
- package/dist/cjs/useLastValue.cjs +13 -11
- package/dist/cjs/useLastValue.native.js +13 -11
- package/dist/cjs/useLastValue.native.js.map +1 -1
- package/dist/cjs/useLastValueIf.cjs +21 -14
- package/dist/cjs/useLastValueIf.native.js +21 -14
- package/dist/cjs/useLastValueIf.native.js.map +1 -1
- package/dist/cjs/useMemoStable.cjs +17 -14
- package/dist/cjs/useMemoStable.native.js +17 -14
- package/dist/cjs/useMemoStable.native.js.map +1 -1
- package/dist/cjs/useMemoizedObjectList.cjs +45 -29
- package/dist/cjs/useMemoizedObjectList.native.js +60 -39
- package/dist/cjs/useMemoizedObjectList.native.js.map +1 -1
- package/dist/cjs/useThrottle.cjs +34 -21
- package/dist/cjs/useThrottle.native.js +41 -27
- package/dist/cjs/useThrottle.native.js.map +1 -1
- package/dist/cjs/useWarnIfDepsChange.cjs +38 -27
- package/dist/cjs/useWarnIfDepsChange.native.js +38 -28
- package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -1
- package/dist/cjs/useWarnIfMemoChangesOften.cjs +24 -15
- package/dist/cjs/useWarnIfMemoChangesOften.native.js +27 -21
- package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -1
- package/dist/esm/useClickOutside.mjs +10 -3
- package/dist/esm/useClickOutside.mjs.map +1 -1
- package/dist/esm/useClickOutside.native.js +20 -10
- package/dist/esm/useClickOutside.native.js.map +1 -1
- package/dist/esm/useDebouncePrepend.mjs +33 -15
- package/dist/esm/useDebouncePrepend.mjs.map +1 -1
- package/dist/esm/useDebouncePrepend.native.js +34 -20
- package/dist/esm/useDebouncePrepend.native.js.map +1 -1
- package/dist/esm/useDeepMemoizedObject.mjs +142 -85
- package/dist/esm/useDeepMemoizedObject.mjs.map +1 -1
- package/dist/esm/useDeepMemoizedObject.native.js +165 -101
- package/dist/esm/useDeepMemoizedObject.native.js.map +1 -1
- package/dist/esm/useDeepMemoizedObject.test.mjs +267 -197
- package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -1
- package/dist/esm/useDeepMemoizedObject.test.native.js +263 -200
- package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -1
- package/dist/esm/useDeferredBoolean.mjs +8 -5
- package/dist/esm/useDeferredBoolean.mjs.map +1 -1
- package/dist/esm/useDeferredBoolean.native.js +8 -5
- package/dist/esm/useDeferredBoolean.native.js.map +1 -1
- package/dist/esm/useEffectOnceGlobally.mjs +12 -2
- package/dist/esm/useEffectOnceGlobally.mjs.map +1 -1
- package/dist/esm/useEffectOnceGlobally.native.js +13 -3
- package/dist/esm/useEffectOnceGlobally.native.js.map +1 -1
- package/dist/esm/useEvent.mjs +2 -1
- package/dist/esm/useEvent.mjs.map +1 -1
- package/dist/esm/useEvent.native.js +5 -2
- package/dist/esm/useEvent.native.js.map +1 -1
- package/dist/esm/useIsMounted.mjs +5 -4
- package/dist/esm/useIsMounted.mjs.map +1 -1
- package/dist/esm/useIsMounted.native.js +5 -4
- package/dist/esm/useIsMounted.native.js.map +1 -1
- package/dist/esm/useLastValue.mjs +1 -1
- package/dist/esm/useLastValue.mjs.map +1 -1
- package/dist/esm/useLastValue.native.js +1 -1
- package/dist/esm/useLastValue.native.js.map +1 -1
- package/dist/esm/useLastValueIf.mjs +9 -4
- package/dist/esm/useLastValueIf.mjs.map +1 -1
- package/dist/esm/useLastValueIf.native.js +9 -4
- package/dist/esm/useLastValueIf.native.js.map +1 -1
- package/dist/esm/useMemoStable.mjs +3 -2
- package/dist/esm/useMemoStable.mjs.map +1 -1
- package/dist/esm/useMemoStable.native.js +3 -2
- package/dist/esm/useMemoStable.native.js.map +1 -1
- package/dist/esm/useMemoizedObjectList.mjs +31 -17
- package/dist/esm/useMemoizedObjectList.mjs.map +1 -1
- package/dist/esm/useMemoizedObjectList.native.js +46 -27
- package/dist/esm/useMemoizedObjectList.native.js.map +1 -1
- package/dist/esm/useThrottle.mjs +20 -9
- package/dist/esm/useThrottle.mjs.map +1 -1
- package/dist/esm/useThrottle.native.js +24 -12
- package/dist/esm/useThrottle.native.js.map +1 -1
- package/dist/esm/useWarnIfDepsChange.mjs +24 -15
- package/dist/esm/useWarnIfDepsChange.mjs.map +1 -1
- package/dist/esm/useWarnIfDepsChange.native.js +24 -16
- package/dist/esm/useWarnIfDepsChange.native.js.map +1 -1
- package/dist/esm/useWarnIfMemoChangesOften.mjs +10 -3
- package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -1
- package/dist/esm/useWarnIfMemoChangesOften.native.js +10 -6
- package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
const executedKeys = /* @__PURE__ */new Set();
|
|
3
3
|
function useEffectOnceGlobally(key, callback) {
|
|
4
|
-
const keyString = key ? typeof key
|
|
4
|
+
const keyString = !key ? void 0 : typeof key === "string" ? key : Array.isArray(key) ? typeof key[0] === "string" ? key.sort().join("") : key.map(item => item.id).sort().join("") : key.id;
|
|
5
5
|
useEffect(() => {
|
|
6
|
-
!keyString || executedKeys.has(keyString)
|
|
6
|
+
if (!keyString || executedKeys.has(keyString)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
executedKeys.add(keyString);
|
|
10
|
+
if (key !== void 0) {
|
|
11
|
+
;
|
|
12
|
+
callback(key);
|
|
13
|
+
} else {
|
|
14
|
+
;
|
|
15
|
+
callback();
|
|
16
|
+
}
|
|
7
17
|
}, [keyString, callback, key]);
|
|
8
18
|
}
|
|
9
19
|
export { useEffectOnceGlobally };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","executedKeys","Set","useEffectOnceGlobally","key","callback","keyString","Array","isArray","sort","join","map","item","id","has","add"],"sources":["../../src/useEffectOnceGlobally.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAE1B,MAAMC,YAAA,GAAe,mBAAIC,GAAA,CAAY;AAU9B,SAASC,sBACdC,GAAA,EACAC,QAAA,EACA;EACA,MAAMC,SAAA,
|
|
1
|
+
{"version":3,"names":["useEffect","executedKeys","Set","useEffectOnceGlobally","key","callback","keyString","Array","isArray","sort","join","map","item","id","has","add"],"sources":["../../src/useEffectOnceGlobally.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAE1B,MAAMC,YAAA,GAAe,mBAAIC,GAAA,CAAY;AAU9B,SAASC,sBACdC,GAAA,EACAC,QAAA,EACA;EACA,MAAMC,SAAA,GAAY,CAACF,GAAA,GACf,SACA,OAAOA,GAAA,KAAQ,WACbA,GAAA,GACAG,KAAA,CAAMC,OAAA,CAAQJ,GAAG,IACf,OAAOA,GAAA,CAAI,CAAC,MAAM,WACfA,GAAA,CAAiBK,IAAA,CAAK,EAAEC,IAAA,CAAK,EAAE,IAC/BN,GAAA,CACEO,GAAA,CAAKC,IAAA,IAASA,IAAA,CAAKC,EAAE,EACrBJ,IAAA,CAAK,EACLC,IAAA,CAAK,EAAE,IACXN,GAAA,CAAeS,EAAA;EAExBb,SAAA,CAAU,MAAM;IACd,IAAI,CAACM,SAAA,IAAaL,YAAA,CAAaa,GAAA,CAAIR,SAAS,GAAG;MAC7C;IACF;IACAL,YAAA,CAAac,GAAA,CAAIT,SAAS;IAC1B,IAAIF,GAAA,KAAQ,QAAW;MACrB;MAAEC,QAAA,CAA6CD,GAAqB;IACtE,OAAO;MACL;MAAEC,QAAA,CAAwB;IAC5B;EACF,GAAG,CAACC,SAAA,EAAWD,QAAA,EAAUD,GAAG,CAAC;AAC/B","ignoreList":[]}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
var executedKeys = /* @__PURE__ */new Set();
|
|
3
3
|
function useEffectOnceGlobally(key, callback) {
|
|
4
|
-
var keyString = key ? typeof key
|
|
4
|
+
var keyString = !key ? void 0 : typeof key === "string" ? key : Array.isArray(key) ? typeof key[0] === "string" ? key.sort().join("") : key.map(function (item) {
|
|
5
5
|
return item.id;
|
|
6
|
-
}).sort().join("") : key.id
|
|
6
|
+
}).sort().join("") : key.id;
|
|
7
7
|
useEffect(function () {
|
|
8
|
-
!keyString || executedKeys.has(keyString)
|
|
8
|
+
if (!keyString || executedKeys.has(keyString)) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
executedKeys.add(keyString);
|
|
12
|
+
if (key !== void 0) {
|
|
13
|
+
;
|
|
14
|
+
callback(key);
|
|
15
|
+
} else {
|
|
16
|
+
;
|
|
17
|
+
callback();
|
|
18
|
+
}
|
|
9
19
|
}, [keyString, callback, key]);
|
|
10
20
|
}
|
|
11
21
|
export { useEffectOnceGlobally };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","executedKeys","Set","useEffectOnceGlobally","key","callback","keyString","Array","isArray","sort","join","map","item","id","has","add"],"sources":["../../src/useEffectOnceGlobally.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAE1B,IAAAC,YAAM,kBAAe,IAAAC,GAAI;AAUlB,SAASC,sBACdC,GAAA,EACAC,QAAA,EACA;EACA,IAAAC,SAAM,
|
|
1
|
+
{"version":3,"names":["useEffect","executedKeys","Set","useEffectOnceGlobally","key","callback","keyString","Array","isArray","sort","join","map","item","id","has","add"],"sources":["../../src/useEffectOnceGlobally.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAE1B,IAAAC,YAAM,kBAAe,IAAAC,GAAI;AAUlB,SAASC,sBACdC,GAAA,EACAC,QAAA,EACA;EACA,IAAAC,SAAM,IAAAF,GAAa,QACf,WACAA,GAAO,aAAQ,GAAAA,GACb,GAAAG,KACA,CAAAC,OAAM,CAAAJ,GAAQ,IAAG,OACfA,GAAO,GAAI,KAAC,QAAM,GAAAA,GACf,CAAAK,IAAiB,GAAKC,IAAE,GAAK,IAAEN,GAC/B,CAAAO,GACE,WAAKC,IAAS;IAK3B,OAAAA,IAAU,CAAAC,EAAM;EACd,GAAAJ,IAAK,GAAAC,IAAA,OAAaN,GAAA,CAAAS,EAAA;EAChBb,SAAA;IACF,KAAAM,SAAA,IAAAL,YAAA,CAAAa,GAAA,CAAAR,SAAA;MACA;IACA;IACEL,YAAA,CAAAc,GAAA,CAAAT,SAAA;IAAC,IAACF,GAAA,KAA6C,KAAqB;MACtE;MACEC,QAAA,CAAAD,GAAA;IAAC,OAAC;MACJ;MACEC,QAAA;IACN","ignoreList":[]}
|
package/dist/esm/useEvent.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { useCallback, useRef } from "react";
|
|
2
2
|
function useEvent(fn) {
|
|
3
3
|
const ref = useRef(fn);
|
|
4
|
-
|
|
4
|
+
ref.current = fn;
|
|
5
|
+
return useCallback((...args) => ref.current(...args), []);
|
|
5
6
|
}
|
|
6
7
|
export { useEvent };
|
|
7
8
|
//# sourceMappingURL=useEvent.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","useEvent","fn","ref","current","args"],"sources":["../../src/useEvent.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,MAAA,QAAc;AAE7B,SAASC,SAA4CC,EAAA,EAAU;EACpE,MAAMC,GAAA,GAAMH,MAAA,CAAOE,EAAE;
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","useEvent","fn","ref","current","args"],"sources":["../../src/useEvent.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,MAAA,QAAc;AAE7B,SAASC,SAA4CC,EAAA,EAAU;EACpE,MAAMC,GAAA,GAAMH,MAAA,CAAOE,EAAE;EACrBC,GAAA,CAAIC,OAAA,GAAUF,EAAA;EACd,OAAOH,WAAA,CAAY,IAAIM,IAAA,KAAwBF,GAAA,CAAIC,OAAA,CAAQ,GAAGC,IAAI,GAAG,EAAE;AACzE","ignoreList":[]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { useCallback, useRef } from "react";
|
|
2
2
|
function useEvent(fn) {
|
|
3
3
|
var ref = useRef(fn);
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
ref.current = fn;
|
|
5
|
+
return useCallback(function () {
|
|
6
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7
|
+
args[_key] = arguments[_key];
|
|
8
|
+
}
|
|
6
9
|
return ref.current(...args);
|
|
7
10
|
}, []);
|
|
8
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","useEvent","fn","ref","current","_len","arguments","length","args","Array","_key"],"sources":["../../src/useEvent.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,MAAA,QAAc;AAE7B,SAASC,SAA4CC,EAAA,EAAU;EACpE,IAAAC,GAAM,GAAAH,MAAM,CAAAE,EAAO;
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","useEvent","fn","ref","current","_len","arguments","length","args","Array","_key"],"sources":["../../src/useEvent.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,MAAA,QAAc;AAE7B,SAASC,SAA4CC,EAAA,EAAU;EACpE,IAAAC,GAAM,GAAAH,MAAM,CAAAE,EAAO;EACnBC,GAAA,CAAIC,OAAA,GAAUF,EAAA;EACd,OAAOH,WAAA,CAAY,YAAI;IACzB,SAAAM,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
2
|
const useIsMounted = () => {
|
|
3
|
-
const [state, setState] = useState(
|
|
4
|
-
|
|
5
|
-
setState(
|
|
6
|
-
}, [])
|
|
3
|
+
const [state, setState] = useState(false);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
setState(true);
|
|
6
|
+
}, []);
|
|
7
|
+
return state;
|
|
7
8
|
};
|
|
8
9
|
export { useIsMounted };
|
|
9
10
|
//# sourceMappingURL=useIsMounted.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","useIsMounted","state","setState"],"sources":["../../src/useIsMounted.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,QAAgB;AAE7B,MAAMC,YAAA,GAAeA,CAAA,KAAM;EAChC,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIH,QAAA,CAAS,
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useIsMounted","state","setState"],"sources":["../../src/useIsMounted.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,QAAgB;AAE7B,MAAMC,YAAA,GAAeA,CAAA,KAAM;EAChC,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIH,QAAA,CAAS,KAAK;EAExCD,SAAA,CAAU,MAAM;IACdI,QAAA,CAAS,IAAI;EACf,GAAG,EAAE;EAEL,OAAOD,KAAA;AACT","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
2
|
var useIsMounted = function () {
|
|
3
|
-
var [state, setState] = useState(
|
|
4
|
-
|
|
5
|
-
setState(
|
|
6
|
-
}, [])
|
|
3
|
+
var [state, setState] = useState(false);
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
setState(true);
|
|
6
|
+
}, []);
|
|
7
|
+
return state;
|
|
7
8
|
};
|
|
8
9
|
export { useIsMounted };
|
|
9
10
|
//# sourceMappingURL=useIsMounted.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","useIsMounted","state","setState"],"sources":["../../src/useIsMounted.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,QAAgB;AAE7B,IAAAC,YAAM,YAAAA,CAAA,EAAqB;EAChC,KAAAC,KAAO,EAAAC,QAAO,IAAQH,QAAI,
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useIsMounted","state","setState"],"sources":["../../src/useIsMounted.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,QAAgB;AAE7B,IAAAC,YAAM,YAAAA,CAAA,EAAqB;EAChC,KAAAC,KAAO,EAAAC,QAAO,IAAQH,QAAI,MAAS;EAEnCD,SAAA,CAAU,YAAM;IACdI,QAAA,CAAS,IAAI;EACf,GAAG,EAAE;EAEL,OAAOD,KAAA;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useLastValueIf","useLastValue","value"],"sources":["../../src/useLastValue.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAExB,SAASC,aAAgBC,KAAA,EAAyB;EACvD,OAAOF,cAAA,CAAeE,KAAA,EAAO,
|
|
1
|
+
{"version":3,"names":["useLastValueIf","useLastValue","value"],"sources":["../../src/useLastValue.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAExB,SAASC,aAAgBC,KAAA,EAAyB;EACvD,OAAOF,cAAA,CAAeE,KAAA,EAAO,IAAI;AACnC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useLastValueIf","useLastValue","value"],"sources":["../../src/useLastValue.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAExB,SAASC,aAAgBC,KAAA,EAAyB;EACvD,OAAOF,cAAA,CAAeE,KAAA,EAAO,
|
|
1
|
+
{"version":3,"names":["useLastValueIf","useLastValue","value"],"sources":["../../src/useLastValue.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAExB,SAASC,aAAgBC,KAAA,EAAyB;EACvD,OAAOF,cAAA,CAAeE,KAAA,EAAO,IAAI;AACnC","ignoreList":[]}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { useRef } from "react";
|
|
2
|
-
function useLastValueIf(value, keepLast =
|
|
3
|
-
const lastTwoValuesRef = useRef([])
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
function useLastValueIf(value, keepLast = true) {
|
|
3
|
+
const lastTwoValuesRef = useRef([]);
|
|
4
|
+
const [latest] = lastTwoValuesRef.current;
|
|
5
|
+
if (keepLast) {
|
|
6
|
+
if (latest !== value) {
|
|
7
|
+
lastTwoValuesRef.current = [value, latest];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return lastTwoValuesRef.current[1];
|
|
6
11
|
}
|
|
7
12
|
export { useLastValueIf };
|
|
8
13
|
//# sourceMappingURL=useLastValueIf.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useLastValueIf","value","keepLast","lastTwoValuesRef","latest","current"],"sources":["../../src/useLastValueIf.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEhB,SAASC,eAAkBC,KAAA,EAAUC,QAAA,GAAW,
|
|
1
|
+
{"version":3,"names":["useRef","useLastValueIf","value","keepLast","lastTwoValuesRef","latest","current"],"sources":["../../src/useLastValueIf.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEhB,SAASC,eAAkBC,KAAA,EAAUC,QAAA,GAAW,MAAqB;EAE1E,MAAMC,gBAAA,GAAmBJ,MAAA,CAA0B,EAAE;EAErD,MAAM,CAACK,MAAM,IAAID,gBAAA,CAAiBE,OAAA;EAClC,IAAIH,QAAA,EAAU;IACZ,IAAIE,MAAA,KAAWH,KAAA,EAAO;MACpBE,gBAAA,CAAiBE,OAAA,GAAU,CAACJ,KAAA,EAAOG,MAAM;IAC3C;EACF;EAEA,OAAOD,gBAAA,CAAiBE,OAAA,CAAQ,CAAC;AACnC","ignoreList":[]}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { useRef } from "react";
|
|
2
2
|
function useLastValueIf(value) {
|
|
3
|
-
var keepLast = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] :
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
var keepLast = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
4
|
+
var lastTwoValuesRef = useRef([]);
|
|
5
|
+
var [latest] = lastTwoValuesRef.current;
|
|
6
|
+
if (keepLast) {
|
|
7
|
+
if (latest !== value) {
|
|
8
|
+
lastTwoValuesRef.current = [value, latest];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return lastTwoValuesRef.current[1];
|
|
7
12
|
}
|
|
8
13
|
export { useLastValueIf };
|
|
9
14
|
//# sourceMappingURL=useLastValueIf.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useLastValueIf","value","keepLast","arguments","length","lastTwoValuesRef","latest","current"],"sources":["../../src/useLastValueIf.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEhB,SAASC,eAAkBC,KAAA,EAAU;EAE1C,IAAAC,QAAM,GAAAC,SAAA,CAAmBC,MAAA,GAA4B,
|
|
1
|
+
{"version":3,"names":["useRef","useLastValueIf","value","keepLast","arguments","length","lastTwoValuesRef","latest","current"],"sources":["../../src/useLastValueIf.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEhB,SAASC,eAAkBC,KAAA,EAAU;EAE1C,IAAAC,QAAM,GAAAC,SAAA,CAAmBC,MAAA,GAA4B,KAAAD,SAAA,iBAAAA,SAAA;EAErD,IAAAE,gBAAiB,GAAAN,MAAA;EACjB,IAAI,CAAAO,MAAA,IAAUD,gBAAA,CAAAE,OAAA;EACZ,IAAAL,QAAI;IACF,IAAAI,MAAA,KAAAL,KAAiB;MACnBI,gBAAA,CAAAE,OAAA,IACFN,KAAA,EAEAK,MAAO,CACT","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { useWarnIfDepsChange } from "./useWarnIfDepsChange.mjs";
|
|
3
3
|
function useMemoStable(getValue, deps, options = {
|
|
4
|
-
name:
|
|
4
|
+
name: `(untitled)`
|
|
5
5
|
}) {
|
|
6
|
-
|
|
6
|
+
useWarnIfDepsChange(deps, options);
|
|
7
|
+
return useMemo(getValue, deps);
|
|
7
8
|
}
|
|
8
9
|
export { useMemoStable };
|
|
9
10
|
//# sourceMappingURL=useMemoStable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useWarnIfDepsChange","useMemoStable","getValue","deps","options","name"],"sources":["../../src/useMemoStable.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAExB,SAASC,mBAAA,QAA2B;AAW7B,SAASC,cACdC,QAAA,EACAC,IAAA,EACAC,OAAA,GAAgC;EAC9BC,IAAA,EAAM;AACR,GACO;
|
|
1
|
+
{"version":3,"names":["useMemo","useWarnIfDepsChange","useMemoStable","getValue","deps","options","name"],"sources":["../../src/useMemoStable.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAExB,SAASC,mBAAA,QAA2B;AAW7B,SAASC,cACdC,QAAA,EACAC,IAAA,EACAC,OAAA,GAAgC;EAC9BC,IAAA,EAAM;AACR,GACO;EACPL,mBAAA,CAAoBG,IAAA,EAAMC,OAAO;EAGjC,OAAOL,OAAA,CAAQG,QAAA,EAAUC,IAAI;AAC/B","ignoreList":[]}
|
|
@@ -2,9 +2,10 @@ import { useMemo } from "react";
|
|
|
2
2
|
import { useWarnIfDepsChange } from "./useWarnIfDepsChange.native.js";
|
|
3
3
|
function useMemoStable(getValue, deps) {
|
|
4
4
|
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
|
|
5
|
-
name:
|
|
5
|
+
name: `(untitled)`
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
useWarnIfDepsChange(deps, options);
|
|
8
|
+
return useMemo(getValue, deps);
|
|
8
9
|
}
|
|
9
10
|
export { useMemoStable };
|
|
10
11
|
//# sourceMappingURL=useMemoStable.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useWarnIfDepsChange","useMemoStable","getValue","deps","options","arguments","length","name"],"sources":["../../src/useMemoStable.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAExB,SAASC,mBAAA,QAA2B;AAW7B,SAASC,cACdC,QAAA,EACAC,IAAA,EACA;EACE,IAAAC,OAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAEDE,IAAA;EACP;
|
|
1
|
+
{"version":3,"names":["useMemo","useWarnIfDepsChange","useMemoStable","getValue","deps","options","arguments","length","name"],"sources":["../../src/useMemoStable.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAExB,SAASC,mBAAA,QAA2B;AAW7B,SAASC,cACdC,QAAA,EACAC,IAAA,EACA;EACE,IAAAC,OAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAEDE,IAAA;EACP;EAGAP,mBAAe,CAAAG,IAAA,EAAUC,OAAI;EAC/B,OAAAL,OAAA,CAAAG,QAAA,EAAAC,IAAA","ignoreList":[]}
|
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
import { isEqualDeepLite } from "@take-out/helpers";
|
|
2
2
|
import { useEffect, useMemo, useRef } from "react";
|
|
3
3
|
function useMemoizedObjectList(list, identityKey) {
|
|
4
|
-
const memoizedItems = useRef({})
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
const memoizedItems = useRef({});
|
|
5
|
+
const memoizedList = useRef(list);
|
|
6
|
+
const val = useMemo(() => {
|
|
7
|
+
let res = list;
|
|
8
|
+
let didFindChange = false;
|
|
9
|
+
const next = [];
|
|
10
|
+
const lastItems = memoizedItems.current;
|
|
11
|
+
if (list.length !== memoizedList.current.length) {
|
|
12
|
+
didFindChange = true;
|
|
13
|
+
}
|
|
14
|
+
for (const item_ of list) {
|
|
15
|
+
const item = item_;
|
|
16
|
+
const id = item[identityKey];
|
|
17
|
+
const last = lastItems[id];
|
|
18
|
+
if (!last || !isEqualDeepLite(last, item)) {
|
|
19
|
+
didFindChange = true;
|
|
20
|
+
lastItems[id] = item;
|
|
21
|
+
next.push(item);
|
|
22
|
+
} else {
|
|
23
|
+
next.push(last);
|
|
17
24
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
}
|
|
26
|
+
if (didFindChange) {
|
|
27
|
+
res = next;
|
|
28
|
+
} else {
|
|
29
|
+
res = memoizedList.current;
|
|
30
|
+
}
|
|
31
|
+
return res;
|
|
32
|
+
}, [identityKey, list]);
|
|
33
|
+
useEffect(() => {
|
|
21
34
|
memoizedList.current = val;
|
|
22
|
-
}, [val])
|
|
35
|
+
}, [val]);
|
|
36
|
+
return val;
|
|
23
37
|
}
|
|
24
38
|
export { useMemoizedObjectList };
|
|
25
39
|
//# sourceMappingURL=useMemoizedObjectList.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEqualDeepLite","useEffect","useMemo","useRef","useMemoizedObjectList","list","identityKey","memoizedItems","memoizedList","val","res","didFindChange","next","lastItems","current","length","item_","item","id","last","push"],"sources":["../../src/useMemoizedObjectList.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAapC,SAASC,sBAIdC,IAAA,EAAaC,WAAA,EAA6B;EAC1C,MAAMC,aAAA,GAAgBJ,MAAA,CAA4B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["isEqualDeepLite","useEffect","useMemo","useRef","useMemoizedObjectList","list","identityKey","memoizedItems","memoizedList","val","res","didFindChange","next","lastItems","current","length","item_","item","id","last","push"],"sources":["../../src/useMemoizedObjectList.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAapC,SAASC,sBAIdC,IAAA,EAAaC,WAAA,EAA6B;EAC1C,MAAMC,aAAA,GAAgBJ,MAAA,CAA4B,CAAC,CAAC;EACpD,MAAMK,YAAA,GAAeL,MAAA,CAAcE,IAAI;EAEvC,MAAMI,GAAA,GAAMP,OAAA,CAAQ,MAAM;IACxB,IAAIQ,GAAA,GAAML,IAAA;IACV,IAAIM,aAAA,GAAgB;IACpB,MAAMC,IAAA,GAAe,EAAC;IACtB,MAAMC,SAAA,GAAYN,aAAA,CAAcO,OAAA;IAGhC,IAAIT,IAAA,CAAKU,MAAA,KAAWP,YAAA,CAAaM,OAAA,CAAQC,MAAA,EAAQ;MAC/CJ,aAAA,GAAgB;IAClB;IAEA,WAAWK,KAAA,IAASX,IAAA,EAAM;MACxB,MAAMY,IAAA,GAAOD,KAAA;MACb,MAAME,EAAA,GAAKD,IAAA,CAAKX,WAAW;MAC3B,MAAMa,IAAA,GAAON,SAAA,CAAUK,EAAE;MAGzB,IAAI,CAACC,IAAA,IAAQ,CAACnB,eAAA,CAAgBmB,IAAA,EAAMF,IAAI,GAAG;QACzCN,aAAA,GAAgB;QAWhBE,SAAA,CAAUK,EAAE,IAAID,IAAA;QAChBL,IAAA,CAAKQ,IAAA,CAAKH,IAAI;MAChB,OAAO;QACLL,IAAA,CAAKQ,IAAA,CAAKD,IAAI;MAChB;IACF;IAGA,IAAIR,aAAA,EAAe;MACjBD,GAAA,GAAME,IAAA;IACR,OAAO;MACLF,GAAA,GAAMF,YAAA,CAAaM,OAAA;IACrB;IAEA,OAAOJ,GAAA;EACT,GAAG,CAACJ,WAAA,EAAaD,IAAI,CAAC;EAEtBJ,SAAA,CAAU,MAAM;IACdO,YAAA,CAAaM,OAAA,GAAUL,GAAA;EACzB,GAAG,CAACA,GAAG,CAAC;EAER,OAAOA,GAAA;AACT","ignoreList":[]}
|
|
@@ -1,39 +1,58 @@
|
|
|
1
1
|
import { isEqualDeepLite } from "@take-out/helpers";
|
|
2
2
|
import { useEffect, useMemo, useRef } from "react";
|
|
3
3
|
function useMemoizedObjectList(list, identityKey) {
|
|
4
|
-
var memoizedItems = useRef({})
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
var memoizedItems = useRef({});
|
|
5
|
+
var memoizedList = useRef(list);
|
|
6
|
+
var val = useMemo(function () {
|
|
7
|
+
var res = list;
|
|
8
|
+
var didFindChange = false;
|
|
9
|
+
var next = [];
|
|
10
|
+
var lastItems = memoizedItems.current;
|
|
11
|
+
if (list.length !== memoizedList.current.length) {
|
|
12
|
+
didFindChange = true;
|
|
13
|
+
}
|
|
14
|
+
var _iteratorNormalCompletion = true,
|
|
15
|
+
_didIteratorError = false,
|
|
16
|
+
_iteratorError = void 0;
|
|
17
|
+
try {
|
|
18
|
+
for (var _iterator = list[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
19
|
+
var item_ = _step.value;
|
|
20
|
+
var item = item_;
|
|
21
|
+
var id = item[identityKey];
|
|
22
|
+
var last = lastItems[id];
|
|
23
|
+
if (!last || !isEqualDeepLite(last, item)) {
|
|
24
|
+
didFindChange = true;
|
|
25
|
+
lastItems[id] = item;
|
|
26
|
+
next.push(item);
|
|
27
|
+
} else {
|
|
28
|
+
next.push(last);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
} catch (err) {
|
|
32
|
+
_didIteratorError = true;
|
|
33
|
+
_iteratorError = err;
|
|
34
|
+
} finally {
|
|
15
35
|
try {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
item = item_,
|
|
19
|
-
id = item[identityKey],
|
|
20
|
-
last = lastItems[id];
|
|
21
|
-
!last || !isEqualDeepLite(last, item) ? (didFindChange = !0, lastItems[id] = item, next.push(item)) : next.push(last);
|
|
36
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
37
|
+
_iterator.return();
|
|
22
38
|
}
|
|
23
|
-
} catch (err) {
|
|
24
|
-
_didIteratorError = !0, _iteratorError = err;
|
|
25
39
|
} finally {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} finally {
|
|
29
|
-
if (_didIteratorError) throw _iteratorError;
|
|
40
|
+
if (_didIteratorError) {
|
|
41
|
+
throw _iteratorError;
|
|
30
42
|
}
|
|
31
43
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
44
|
+
}
|
|
45
|
+
if (didFindChange) {
|
|
46
|
+
res = next;
|
|
47
|
+
} else {
|
|
48
|
+
res = memoizedList.current;
|
|
49
|
+
}
|
|
50
|
+
return res;
|
|
51
|
+
}, [identityKey, list]);
|
|
52
|
+
useEffect(function () {
|
|
35
53
|
memoizedList.current = val;
|
|
36
|
-
}, [val])
|
|
54
|
+
}, [val]);
|
|
55
|
+
return val;
|
|
37
56
|
}
|
|
38
57
|
export { useMemoizedObjectList };
|
|
39
58
|
//# sourceMappingURL=useMemoizedObjectList.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEqualDeepLite","useEffect","useMemo","useRef","useMemoizedObjectList","list","identityKey","memoizedItems","memoizedList","val","res","didFindChange","next","lastItems","current","length","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","item_","value","item","id","last","push","err","return"],"sources":["../../src/useMemoizedObjectList.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAapC,SAASC,sBAIdC,IAAA,EAAaC,WAAA,EAA6B;EAC1C,IAAAC,aAAM,GAAAJ,MAAgB,GAA4B,CAAC;
|
|
1
|
+
{"version":3,"names":["isEqualDeepLite","useEffect","useMemo","useRef","useMemoizedObjectList","list","identityKey","memoizedItems","memoizedList","val","res","didFindChange","next","lastItems","current","length","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","item_","value","item","id","last","push","err","return"],"sources":["../../src/useMemoizedObjectList.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAapC,SAASC,sBAIdC,IAAA,EAAaC,WAAA,EAA6B;EAC1C,IAAAC,aAAM,GAAAJ,MAAgB,GAA4B,CAAC;EACnD,IAAAK,YAAM,GAAAL,MAAe,CAAAE,IAAc;EAEnC,IAAAI,GAAM,GAAAP,OAAM,aAAc;IACxB,IAAIQ,GAAA,GAAML,IAAA;IACV,IAAIM,aAAA,GAAgB;IACpB,IAAAC,IAAM,KAAe;IACrB,IAAAC,SAAM,GAAAN,aAAY,CAAAO,OAAc;IAGhC,IAAIT,IAAA,CAAKU,MAAA,KAAWP,YAAA,CAAaM,OAAA,CAAQC,MAAA,EAAQ;MAC/CJ,aAAA,GAAgB;IAClB;IAEA,IAAAK,yBAA0B;MAAAC,iBAAA;MAAAC,cAAA;IACxB;MACA,SAAMC,SAAU,GAAAd,IAAA,CAAAe,MAAW,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAP,IAAA,IAAAW,IAAA,GAAAP,yBAAA;QAC3B,IAAMQ,KAAA,GAAOF,KAAA,CAAAG,KAAY;QAGzB,IAAKC,IAAA,GAAQF,KAAC;QACZ,IAAAG,EAAA,GAAAD,IAAA,CAAApB,WAAgB;QAWhB,IAAAsB,IAAA,GAAUf,SAAM,CAAAc,EAAA;QAChB,KAAKC,IAAA,IAAK,CAAI5B,eAAA,CAAA4B,IAAA,EAAAF,IAAA;UAChBf,aAAO;UACLE,SAAU,CAAAc,EAAI,IAAAD,IAAA;UAChBd,IAAA,CAAAiB,IAAA,CAAAH,IAAA;QACF;UAGId,IAAA,CAAAiB,IAAA,CAAAD,IAAe;QACjB;MACF;IACE,SAAME,GAAA;MACRb,iBAAA;MAEAC,cAAO,GAAAY,GAAA;IACT,CAAG,SAAC;MAEJ;QACE,KAAAd,yBAAuB,IAAAG,SAAA,CAAAY,MAAA;UACjBZ,SAAA,CAAAY,MAAA;QAER;MACF","ignoreList":[]}
|
package/dist/esm/useThrottle.mjs
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { useRef } from "react";
|
|
2
2
|
import { useEvent } from "./useEvent.mjs";
|
|
3
3
|
const useThrottle = (fn, delay = 100) => {
|
|
4
|
-
const lastCallTime = useRef(0)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const now = Date.now()
|
|
9
|
-
|
|
10
|
-
timeSinceLastCall >= delay
|
|
11
|
-
lastCallTime.current =
|
|
12
|
-
|
|
4
|
+
const lastCallTime = useRef(0);
|
|
5
|
+
const timeoutRef = useRef(null);
|
|
6
|
+
const stableFn = useEvent(fn);
|
|
7
|
+
const throttledFn = useEvent((...args) => {
|
|
8
|
+
const now = Date.now();
|
|
9
|
+
const timeSinceLastCall = now - lastCallTime.current;
|
|
10
|
+
if (timeSinceLastCall >= delay) {
|
|
11
|
+
lastCallTime.current = now;
|
|
12
|
+
stableFn(...args);
|
|
13
|
+
} else {
|
|
14
|
+
if (timeoutRef.current) {
|
|
15
|
+
clearTimeout(timeoutRef.current);
|
|
16
|
+
}
|
|
17
|
+
timeoutRef.current = setTimeout(() => {
|
|
18
|
+
lastCallTime.current = Date.now();
|
|
19
|
+
stableFn(...args);
|
|
20
|
+
timeoutRef.current = null;
|
|
21
|
+
}, delay - timeSinceLastCall);
|
|
22
|
+
}
|
|
13
23
|
});
|
|
24
|
+
return throttledFn;
|
|
14
25
|
};
|
|
15
26
|
export { useThrottle };
|
|
16
27
|
//# sourceMappingURL=useThrottle.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useEvent","useThrottle","fn","delay","lastCallTime","timeoutRef","stableFn","args","now","Date","timeSinceLastCall","current","clearTimeout","setTimeout"],"sources":["../../src/useThrottle.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,QAAA,QAAgB;AAIlB,MAAMC,WAAA,GAAcA,CAAoCC,EAAA,EAAOC,KAAA,GAAQ,QAAW;EACvF,MAAMC,YAAA,GAAeL,MAAA,CAAe,CAAC;
|
|
1
|
+
{"version":3,"names":["useRef","useEvent","useThrottle","fn","delay","lastCallTime","timeoutRef","stableFn","throttledFn","args","now","Date","timeSinceLastCall","current","clearTimeout","setTimeout"],"sources":["../../src/useThrottle.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,QAAA,QAAgB;AAIlB,MAAMC,WAAA,GAAcA,CAAoCC,EAAA,EAAOC,KAAA,GAAQ,QAAW;EACvF,MAAMC,YAAA,GAAeL,MAAA,CAAe,CAAC;EACrC,MAAMM,UAAA,GAAaN,MAAA,CAAqB,IAAI;EAE5C,MAAMO,QAAA,GAAWN,QAAA,CAASE,EAAE;EAE5B,MAAMK,WAAA,GAAcP,QAAA,CAAS,IAAIQ,IAAA,KAAwB;IACvD,MAAMC,GAAA,GAAMC,IAAA,CAAKD,GAAA,CAAI;IACrB,MAAME,iBAAA,GAAoBF,GAAA,GAAML,YAAA,CAAaQ,OAAA;IAE7C,IAAID,iBAAA,IAAqBR,KAAA,EAAO;MAE9BC,YAAA,CAAaQ,OAAA,GAAUH,GAAA;MACvBH,QAAA,CAAS,GAAGE,IAAI;IAClB,OAAO;MAEL,IAAIH,UAAA,CAAWO,OAAA,EAAS;QACtBC,YAAA,CAAaR,UAAA,CAAWO,OAAO;MACjC;MAEAP,UAAA,CAAWO,OAAA,GAAUE,UAAA,CAAW,MAAM;QACpCV,YAAA,CAAaQ,OAAA,GAAUF,IAAA,CAAKD,GAAA,CAAI;QAChCH,QAAA,CAAS,GAAGE,IAAI;QAChBH,UAAA,CAAWO,OAAA,GAAU;MACvB,GAAGT,KAAA,GAAQQ,iBAAiB;IAC9B;EACF,CAAC;EAED,OAAOJ,WAAA;AACT","ignoreList":[]}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
import { useRef } from "react";
|
|
2
2
|
import { useEvent } from "./useEvent.native.js";
|
|
3
3
|
var useThrottle = function (fn) {
|
|
4
|
-
var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 100
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 100;
|
|
5
|
+
var lastCallTime = useRef(0);
|
|
6
|
+
var timeoutRef = useRef(null);
|
|
7
|
+
var stableFn = useEvent(fn);
|
|
8
|
+
var throttledFn = useEvent(function () {
|
|
9
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
10
|
+
args[_key] = arguments[_key];
|
|
11
|
+
}
|
|
12
|
+
var now = Date.now();
|
|
13
|
+
var timeSinceLastCall = now - lastCallTime.current;
|
|
14
|
+
if (timeSinceLastCall >= delay) {
|
|
15
|
+
lastCallTime.current = now;
|
|
16
|
+
stableFn(...args);
|
|
17
|
+
} else {
|
|
18
|
+
if (timeoutRef.current) {
|
|
19
|
+
clearTimeout(timeoutRef.current);
|
|
20
|
+
}
|
|
21
|
+
timeoutRef.current = setTimeout(function () {
|
|
22
|
+
lastCallTime.current = Date.now();
|
|
23
|
+
stableFn(...args);
|
|
24
|
+
timeoutRef.current = null;
|
|
25
|
+
}, delay - timeSinceLastCall);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
16
28
|
return throttledFn;
|
|
17
29
|
};
|
|
18
30
|
export { useThrottle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useEvent","useThrottle","fn","delay","arguments","length","lastCallTime","timeoutRef","stableFn","throttledFn","_len","args","Array","_key","now","Date","timeSinceLastCall","current","clearTimeout","setTimeout"],"sources":["../../src/useThrottle.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,QAAA,QAAgB;AAIlB,IAAAC,WAAM,YAAAA,CAAyDC,EAAA;EACpE,IAAAC,KAAM,GAAAC,SAAe,CAAAC,MAAe,GAAC,
|
|
1
|
+
{"version":3,"names":["useRef","useEvent","useThrottle","fn","delay","arguments","length","lastCallTime","timeoutRef","stableFn","throttledFn","_len","args","Array","_key","now","Date","timeSinceLastCall","current","clearTimeout","setTimeout"],"sources":["../../src/useThrottle.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,QAAA,QAAgB;AAIlB,IAAAC,WAAM,YAAAA,CAAyDC,EAAA;EACpE,IAAAC,KAAM,GAAAC,SAAe,CAAAC,MAAe,GAAC,KAAAD,SAAA,iBAAAA,SAAA;EACrC,IAAAE,YAAM,GAAaP,MAAA,CAAqB;EAExC,IAAAQ,UAAM,GAAWR,MAAA,KAAW;EAE5B,IAAAS,QAAM,GAAAR,QAAc,CAAAE,EAAA;EAClB,IAAAO,WAAY,GAAAT,QAAS;IACrB,SAAMU,IAAA,GAAAN,SAAA,CAAoBC,MAAM,EAAAM,IAAA,OAAaC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAE7CF,IAAI,CAAAE,IAAA,IAAAT,SAAA,CAAqBS,IAAA;IAEvB;IACA,IAAAC,GAAA,GAAAC,IAAY,CAAAD,GAAI;IAClB,IAAAE,iBAAO,GAAAF,GAAA,GAAAR,YAAA,CAAAW,OAAA;IAEL,IAAAD,iBAAe,IAAAb,KAAS;MACtBG,YAAA,CAAAW,OAAa,GAAAH,GAAW;MAC1BN,QAAA,IAAAG,IAAA;IAEA;MACE,IAAAJ,UAAA,CAAaU,OAAA;QACbC,YAAY,CAAAX,UAAI,CAAAU,OAAA;MAChB;MACFV,UAAG,CAAQU,OAAA,GAAAE,UAAiB;QAC9Bb,YAAA,CAAAW,OAAA,GAAAF,IAAA,CAAAD,GAAA;QACDN,QAAA,IAAAG,IAAA;QAEDJ,UAAO,CAAAU,OAAA;MACT,GAAAd,KAAA,GAAAa,iBAAA","ignoreList":[]}
|
|
@@ -2,26 +2,35 @@ import { getCurrentComponentStack } from "@take-out/helpers";
|
|
|
2
2
|
import { useEffect, useId, useRef } from "react";
|
|
3
3
|
function useWarnIfDepsChange(deps, options) {
|
|
4
4
|
const {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
maxChanges = 0,
|
|
6
|
+
name,
|
|
7
|
+
ignoreIndexBefore = 0
|
|
8
|
+
} = options;
|
|
9
|
+
const changeCountRef = useRef(0);
|
|
10
|
+
const prevDepsRef = useRef(void 0);
|
|
11
|
+
const id = useId();
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
if (process.env.NODE_ENV === "development") {
|
|
14
14
|
if (prevDepsRef.current !== void 0) {
|
|
15
15
|
const changedDeps = [];
|
|
16
|
-
|
|
16
|
+
const compareDeps = ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps;
|
|
17
|
+
compareDeps.forEach((dep, indexIn) => {
|
|
17
18
|
const index = indexIn + ignoreIndexBefore;
|
|
18
|
-
prevDepsRef.current && prevDepsRef.current[index] !== dep
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
if (prevDepsRef.current && prevDepsRef.current[index] !== dep) {
|
|
20
|
+
changedDeps.push({
|
|
21
|
+
index,
|
|
22
|
+
prev: prevDepsRef.current[index],
|
|
23
|
+
next: dep
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
if (changedDeps.length > 0) {
|
|
28
|
+
changeCountRef.current++;
|
|
29
|
+
if (changeCountRef.current > maxChanges) {
|
|
30
|
+
console.info(`\u{1F504} useWarnIfDepsChange "${name}" is changing too often! Changed ${changeCountRef.current} times (max: ${maxChanges})`, changedDeps, `
|
|
31
|
+
id (${id}) at:`, getCurrentComponentStack("short"));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
25
34
|
}
|
|
26
35
|
prevDepsRef.current = deps;
|
|
27
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getCurrentComponentStack","useEffect","useId","useRef","useWarnIfDepsChange","deps","options","maxChanges","name","ignoreIndexBefore","changeCountRef","prevDepsRef","id","process","env","NODE_ENV","current","changedDeps","slice","forEach","dep","indexIn","index","push","prev","next","length","console","info"],"sources":["../../src/useWarnIfDepsChange.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,SAAA,EAAWC,KAAA,EAAOC,MAAA,QAAc;AAQlC,SAASC,oBACdC,IAAA,EACAC,OAAA,EACM;EACN,MAAM;
|
|
1
|
+
{"version":3,"names":["getCurrentComponentStack","useEffect","useId","useRef","useWarnIfDepsChange","deps","options","maxChanges","name","ignoreIndexBefore","changeCountRef","prevDepsRef","id","process","env","NODE_ENV","current","changedDeps","compareDeps","slice","forEach","dep","indexIn","index","push","prev","next","length","console","info"],"sources":["../../src/useWarnIfDepsChange.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,SAAA,EAAWC,KAAA,EAAOC,MAAA,QAAc;AAQlC,SAASC,oBACdC,IAAA,EACAC,OAAA,EACM;EACN,MAAM;IAAEC,UAAA,GAAa;IAAGC,IAAA;IAAMC,iBAAA,GAAoB;EAAE,IAAIH,OAAA;EAExD,MAAMI,cAAA,GAAiBP,MAAA,CAAO,CAAC;EAC/B,MAAMQ,WAAA,GAAcR,MAAA,CAAsB,MAAS;EACnD,MAAMS,EAAA,GAAKV,KAAA,CAAM;EAEjBD,SAAA,CAAU,MAAM;IACd,IAAIY,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIJ,WAAA,CAAYK,OAAA,KAAY,QAAW;QACrC,MAAMC,WAAA,GAID,EAAC;QAEN,MAAMC,WAAA,GAAcT,iBAAA,GAAoBJ,IAAA,CAAKc,KAAA,CAAMV,iBAAiB,IAAIJ,IAAA;QAExEa,WAAA,CAAYE,OAAA,CAAQ,CAACC,GAAA,EAAKC,OAAA,KAAY;UACpC,MAAMC,KAAA,GAAQD,OAAA,GAAUb,iBAAA;UAExB,IAAIE,WAAA,CAAYK,OAAA,IAAWL,WAAA,CAAYK,OAAA,CAAQO,KAAK,MAAMF,GAAA,EAAK;YAC7DJ,WAAA,CAAYO,IAAA,CAAK;cACfD,KAAA;cACAE,IAAA,EAAMd,WAAA,CAAYK,OAAA,CAAQO,KAAK;cAC/BG,IAAA,EAAML;YACR,CAAC;UACH;QACF,CAAC;QAED,IAAIJ,WAAA,CAAYU,MAAA,GAAS,GAAG;UAC1BjB,cAAA,CAAeM,OAAA;UAEf,IAAIN,cAAA,CAAeM,OAAA,GAAUT,UAAA,EAAY;YAEvCqB,OAAA,CAAQC,IAAA,CACN,kCAA2BrB,IAAI,oCAAoCE,cAAA,CAAeM,OAAO,gBAAgBT,UAAU,KACnHU,WAAA,EACA;AAAA,OAAUL,EAAE,SACZZ,wBAAA,CAAyB,OAAO,CAClC;UACF;QACF;MACF;MAEAW,WAAA,CAAYK,OAAA,GAAUX,IAAA;IACxB;EACF,CAAC;AACH","ignoreList":[]}
|