@take-out/hooks 0.0.28
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/LICENSE +21 -0
- package/README.md +120 -0
- package/dist/cjs/index.cjs +30 -0
- package/dist/cjs/index.js +27 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +33 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/useClickOutside.cjs +43 -0
- package/dist/cjs/useClickOutside.js +37 -0
- package/dist/cjs/useClickOutside.js.map +6 -0
- package/dist/cjs/useClickOutside.native.js +51 -0
- package/dist/cjs/useClickOutside.native.js.map +1 -0
- package/dist/cjs/useDebouncePrepend.cjs +46 -0
- package/dist/cjs/useDebouncePrepend.js +40 -0
- package/dist/cjs/useDebouncePrepend.js.map +6 -0
- package/dist/cjs/useDebouncePrepend.native.js +54 -0
- package/dist/cjs/useDebouncePrepend.native.js.map +1 -0
- package/dist/cjs/useDeepMemoizedObject.cjs +148 -0
- package/dist/cjs/useDeepMemoizedObject.js +122 -0
- package/dist/cjs/useDeepMemoizedObject.js.map +6 -0
- package/dist/cjs/useDeepMemoizedObject.native.js +192 -0
- package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -0
- package/dist/cjs/useDeepMemoizedObject.test.cjs +251 -0
- package/dist/cjs/useDeepMemoizedObject.test.js +187 -0
- package/dist/cjs/useDeepMemoizedObject.test.js.map +6 -0
- package/dist/cjs/useDeepMemoizedObject.test.native.js +261 -0
- package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -0
- package/dist/cjs/useDeferredBoolean.cjs +34 -0
- package/dist/cjs/useDeferredBoolean.js +29 -0
- package/dist/cjs/useDeferredBoolean.js.map +6 -0
- package/dist/cjs/useDeferredBoolean.native.js +37 -0
- package/dist/cjs/useDeferredBoolean.native.js.map +1 -0
- package/dist/cjs/useEffectOnceGlobally.cjs +33 -0
- package/dist/cjs/useEffectOnceGlobally.js +28 -0
- package/dist/cjs/useEffectOnceGlobally.js.map +6 -0
- package/dist/cjs/useEffectOnceGlobally.native.js +38 -0
- package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -0
- package/dist/cjs/useIsMounted.cjs +32 -0
- package/dist/cjs/useIsMounted.js +27 -0
- package/dist/cjs/useIsMounted.js.map +6 -0
- package/dist/cjs/useIsMounted.native.js +35 -0
- package/dist/cjs/useIsMounted.native.js.map +1 -0
- package/dist/cjs/useLastValue.cjs +29 -0
- package/dist/cjs/useLastValue.js +24 -0
- package/dist/cjs/useLastValue.js.map +6 -0
- package/dist/cjs/useLastValue.native.js +32 -0
- package/dist/cjs/useLastValue.native.js.map +1 -0
- package/dist/cjs/useLastValueIf.cjs +31 -0
- package/dist/cjs/useLastValueIf.js +25 -0
- package/dist/cjs/useLastValueIf.js.map +6 -0
- package/dist/cjs/useLastValueIf.native.js +35 -0
- package/dist/cjs/useLastValueIf.native.js.map +1 -0
- package/dist/cjs/useMemoStable.cjs +32 -0
- package/dist/cjs/useMemoStable.js +26 -0
- package/dist/cjs/useMemoStable.js.map +6 -0
- package/dist/cjs/useMemoStable.native.js +36 -0
- package/dist/cjs/useMemoStable.native.js.map +1 -0
- package/dist/cjs/useMemoizedObjectList.cjs +48 -0
- package/dist/cjs/useMemoizedObjectList.js +36 -0
- package/dist/cjs/useMemoizedObjectList.js.map +6 -0
- package/dist/cjs/useMemoizedObjectList.native.js +65 -0
- package/dist/cjs/useMemoizedObjectList.native.js.map +1 -0
- package/dist/cjs/useThrottle.cjs +39 -0
- package/dist/cjs/useThrottle.js +30 -0
- package/dist/cjs/useThrottle.js.map +6 -0
- package/dist/cjs/useThrottle.native.js +45 -0
- package/dist/cjs/useThrottle.native.js.map +1 -0
- package/dist/cjs/useWarnIfDepsChange.cjs +54 -0
- package/dist/cjs/useWarnIfDepsChange.js +46 -0
- package/dist/cjs/useWarnIfDepsChange.js.map +6 -0
- package/dist/cjs/useWarnIfDepsChange.native.js +58 -0
- package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -0
- package/dist/cjs/useWarnIfMemoChangesOften.cjs +34 -0
- package/dist/cjs/useWarnIfMemoChangesOften.js +29 -0
- package/dist/cjs/useWarnIfMemoChangesOften.js.map +6 -0
- package/dist/cjs/useWarnIfMemoChangesOften.native.js +42 -0
- package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +14 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +14 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/useClickOutside.js +22 -0
- package/dist/esm/useClickOutside.js.map +6 -0
- package/dist/esm/useClickOutside.mjs +20 -0
- package/dist/esm/useClickOutside.mjs.map +1 -0
- package/dist/esm/useClickOutside.native.js +25 -0
- package/dist/esm/useClickOutside.native.js.map +1 -0
- package/dist/esm/useDebouncePrepend.js +25 -0
- package/dist/esm/useDebouncePrepend.js.map +6 -0
- package/dist/esm/useDebouncePrepend.mjs +23 -0
- package/dist/esm/useDebouncePrepend.mjs.map +1 -0
- package/dist/esm/useDebouncePrepend.native.js +28 -0
- package/dist/esm/useDebouncePrepend.native.js.map +1 -0
- package/dist/esm/useDeepMemoizedObject.js +106 -0
- package/dist/esm/useDeepMemoizedObject.js.map +6 -0
- package/dist/esm/useDeepMemoizedObject.mjs +123 -0
- package/dist/esm/useDeepMemoizedObject.mjs.map +1 -0
- package/dist/esm/useDeepMemoizedObject.native.js +164 -0
- package/dist/esm/useDeepMemoizedObject.native.js.map +1 -0
- package/dist/esm/useDeepMemoizedObject.test.js +188 -0
- package/dist/esm/useDeepMemoizedObject.test.js.map +6 -0
- package/dist/esm/useDeepMemoizedObject.test.mjs +252 -0
- package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -0
- package/dist/esm/useDeepMemoizedObject.test.native.js +259 -0
- package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -0
- package/dist/esm/useDeferredBoolean.js +13 -0
- package/dist/esm/useDeferredBoolean.js.map +6 -0
- package/dist/esm/useDeferredBoolean.mjs +11 -0
- package/dist/esm/useDeferredBoolean.mjs.map +1 -0
- package/dist/esm/useDeferredBoolean.native.js +11 -0
- package/dist/esm/useDeferredBoolean.native.js.map +1 -0
- package/dist/esm/useEffectOnceGlobally.js +12 -0
- package/dist/esm/useEffectOnceGlobally.js.map +6 -0
- package/dist/esm/useEffectOnceGlobally.mjs +10 -0
- package/dist/esm/useEffectOnceGlobally.mjs.map +1 -0
- package/dist/esm/useEffectOnceGlobally.native.js +12 -0
- package/dist/esm/useEffectOnceGlobally.native.js.map +1 -0
- package/dist/esm/useIsMounted.js +11 -0
- package/dist/esm/useIsMounted.js.map +6 -0
- package/dist/esm/useIsMounted.mjs +9 -0
- package/dist/esm/useIsMounted.mjs.map +1 -0
- package/dist/esm/useIsMounted.native.js +9 -0
- package/dist/esm/useIsMounted.native.js.map +1 -0
- package/dist/esm/useLastValue.js +8 -0
- package/dist/esm/useLastValue.js.map +6 -0
- package/dist/esm/useLastValue.mjs +6 -0
- package/dist/esm/useLastValue.mjs.map +1 -0
- package/dist/esm/useLastValue.native.js +6 -0
- package/dist/esm/useLastValue.native.js.map +1 -0
- package/dist/esm/useLastValueIf.js +9 -0
- package/dist/esm/useLastValueIf.js.map +6 -0
- package/dist/esm/useLastValueIf.mjs +8 -0
- package/dist/esm/useLastValueIf.mjs.map +1 -0
- package/dist/esm/useLastValueIf.native.js +9 -0
- package/dist/esm/useLastValueIf.native.js.map +1 -0
- package/dist/esm/useMemoStable.js +11 -0
- package/dist/esm/useMemoStable.js.map +6 -0
- package/dist/esm/useMemoStable.mjs +9 -0
- package/dist/esm/useMemoStable.mjs.map +1 -0
- package/dist/esm/useMemoStable.native.js +10 -0
- package/dist/esm/useMemoStable.native.js.map +1 -0
- package/dist/esm/useMemoizedObjectList.js +21 -0
- package/dist/esm/useMemoizedObjectList.js.map +6 -0
- package/dist/esm/useMemoizedObjectList.mjs +25 -0
- package/dist/esm/useMemoizedObjectList.mjs.map +1 -0
- package/dist/esm/useMemoizedObjectList.native.js +39 -0
- package/dist/esm/useMemoizedObjectList.native.js.map +1 -0
- package/dist/esm/useThrottle.js +15 -0
- package/dist/esm/useThrottle.js.map +6 -0
- package/dist/esm/useThrottle.mjs +16 -0
- package/dist/esm/useThrottle.mjs.map +1 -0
- package/dist/esm/useThrottle.native.js +19 -0
- package/dist/esm/useThrottle.native.js.map +1 -0
- package/dist/esm/useWarnIfDepsChange.js +31 -0
- package/dist/esm/useWarnIfDepsChange.js.map +6 -0
- package/dist/esm/useWarnIfDepsChange.mjs +31 -0
- package/dist/esm/useWarnIfDepsChange.mjs.map +1 -0
- package/dist/esm/useWarnIfDepsChange.native.js +32 -0
- package/dist/esm/useWarnIfDepsChange.native.js.map +1 -0
- package/dist/esm/useWarnIfMemoChangesOften.js +14 -0
- package/dist/esm/useWarnIfMemoChangesOften.js.map +6 -0
- package/dist/esm/useWarnIfMemoChangesOften.mjs +11 -0
- package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -0
- package/dist/esm/useWarnIfMemoChangesOften.native.js +16 -0
- package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -0
- package/package.json +54 -0
- package/src/index.ts +13 -0
- package/src/useClickOutside.ts +34 -0
- package/src/useDebouncePrepend.ts +63 -0
- package/src/useDeepMemoizedObject.test.ts +343 -0
- package/src/useDeepMemoizedObject.ts +231 -0
- package/src/useDeferredBoolean.tsx +15 -0
- package/src/useEffectOnceGlobally.ts +41 -0
- package/src/useIsMounted.ts +11 -0
- package/src/useLastValue.ts +5 -0
- package/src/useLastValueIf.ts +15 -0
- package/src/useMemoStable.ts +24 -0
- package/src/useMemoizedObjectList.ts +74 -0
- package/src/useThrottle.ts +35 -0
- package/src/useWarnIfDepsChange.ts +61 -0
- package/src/useWarnIfMemoChangesOften.ts +24 -0
|
@@ -0,0 +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,GAAAF,GAAa,UAEfA,GAAO,YAAQ,GAAAA,GACb,GAAAG,KACA,CAAAC,OAAM,CAAAJ,GAAQ,IAAG,OACfA,GAAO,GAAI,IAAC,QAAM,GAAAA,GACf,CAAAK,IAAiB,GAAKC,IAAE,GAAK,IAAEN,GAC/B,CAAAO,GACE,WAAKC,IAAS;IAK3B,OAAAA,IAAU,CAAAC,EAAM;EACd,EAAI,CAACJ,IAAA,GAAAC,IAAA,GAAa,IAAAN,GAAA,CAAAS,EAAA,GAAa,KAAI;EASrCb,SAAI,aAAW;IACjB,CAAAM,SAAA,IAAAL,YAAA,CAAAa,GAAA,CAAAR,SAAA,MAAAL,YAAA,CAAAc,GAAA,CAAAT,SAAA,GAAAF,GAAA,cAAAC,QAAA,CAAAD,GAAA,IAAAC,QAAA","ignoreList":[]}
|
|
@@ -0,0 +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,EAAK;EAExC,OAAAD,SAAA,CAAU,MAAM;IACdI,QAAA,CAAS,EAAI;EACf,GAAG,EAAE,GAEED,KAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
var useIsMounted = function () {
|
|
3
|
+
var [state, setState] = useState(!1);
|
|
4
|
+
return useEffect(function () {
|
|
5
|
+
setState(!0);
|
|
6
|
+
}, []), state;
|
|
7
|
+
};
|
|
8
|
+
export { useIsMounted };
|
|
9
|
+
//# sourceMappingURL=useIsMounted.native.js.map
|
|
@@ -0,0 +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,GAAS;EAEnC,OAAAD,SAAA,CAAU,YAAM;IACdI,QAAA,CAAS,EAAI;EACf,GAAG,EAAE,GAEED,KAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +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,EAAI;AACnC","ignoreList":[]}
|
|
@@ -0,0 +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,EAAI;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
function useLastValueIf(value, keepLast = !0) {
|
|
3
|
+
const lastTwoValuesRef = useRef([]), [latest] = lastTwoValuesRef.current;
|
|
4
|
+
return keepLast && latest !== value && (lastTwoValuesRef.current = [value, latest]), lastTwoValuesRef.current[1];
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
useLastValueIf
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=useLastValueIf.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useLastValueIf.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,cAAc;AAEhB,SAAS,eAAkB,OAAU,WAAW,IAAqB;AAE1E,QAAM,mBAAmB,OAA0B,CAAC,CAAC,GAE/C,CAAC,MAAM,IAAI,iBAAiB;AAClC,SAAI,YACE,WAAW,UACb,iBAAiB,UAAU,CAAC,OAAO,MAAM,IAItC,iBAAiB,QAAQ,CAAC;AACnC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
function useLastValueIf(value, keepLast = !0) {
|
|
3
|
+
const lastTwoValuesRef = useRef([]),
|
|
4
|
+
[latest] = lastTwoValuesRef.current;
|
|
5
|
+
return keepLast && latest !== value && (lastTwoValuesRef.current = [value, latest]), lastTwoValuesRef.current[1];
|
|
6
|
+
}
|
|
7
|
+
export { useLastValueIf };
|
|
8
|
+
//# sourceMappingURL=useLastValueIf.mjs.map
|
|
@@ -0,0 +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,IAAqB;EAE1E,MAAMC,gBAAA,GAAmBJ,MAAA,CAA0B,EAAE;IAE/C,CAACK,MAAM,IAAID,gBAAA,CAAiBE,OAAA;EAClC,OAAIH,QAAA,IACEE,MAAA,KAAWH,KAAA,KACbE,gBAAA,CAAiBE,OAAA,GAAU,CAACJ,KAAA,EAAOG,MAAM,IAItCD,gBAAA,CAAiBE,OAAA,CAAQ,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
function useLastValueIf(value) {
|
|
3
|
+
var keepLast = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0,
|
|
4
|
+
lastTwoValuesRef = useRef([]),
|
|
5
|
+
[latest] = lastTwoValuesRef.current;
|
|
6
|
+
return keepLast && latest !== value && (lastTwoValuesRef.current = [value, latest]), lastTwoValuesRef.current[1];
|
|
7
|
+
}
|
|
8
|
+
export { useLastValueIf };
|
|
9
|
+
//# sourceMappingURL=useLastValueIf.native.js.map
|
|
@@ -0,0 +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,KAE9CD,SAAU,iBAAiBA,SAAA;IAAAE,gBAAA,GAAAN,MAAA;IAAA,CAAAO,MAAA,IAAAD,gBAAA,CAAAE,OAAA;EAClC,OAAIL,QAAA,IACEI,MAAA,KAAWL,KAAA,KACbI,gBAAA,CAAiBE,OAAA,GAAU,CAKjCN,KAAA,E","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useWarnIfDepsChange } from "./useWarnIfDepsChange";
|
|
3
|
+
function useMemoStable(getValue, deps, options = {
|
|
4
|
+
name: "(untitled)"
|
|
5
|
+
}) {
|
|
6
|
+
return useWarnIfDepsChange(deps, options), useMemo(getValue, deps);
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
useMemoStable
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=useMemoStable.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useWarnIfDepsChange } from "./useWarnIfDepsChange.mjs";
|
|
3
|
+
function useMemoStable(getValue, deps, options = {
|
|
4
|
+
name: "(untitled)"
|
|
5
|
+
}) {
|
|
6
|
+
return useWarnIfDepsChange(deps, options), useMemo(getValue, deps);
|
|
7
|
+
}
|
|
8
|
+
export { useMemoStable };
|
|
9
|
+
//# sourceMappingURL=useMemoStable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","useWarnIfDepsChange","useMemoStable","getValue","deps","options","name"],"sources":["../../src/useMemoStable.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,mBAAA,QAA2B;AAW7B,SAASC,cACdC,QAAA,EACAC,IAAA,EACAC,OAAA,GAAgC;EAC9BC,IAAA,EAAM;AACR,GACO;EACP,OAAAL,mBAAA,CAAoBG,IAAA,EAAMC,OAAO,GAG1BL,OAAA,CAAQG,QAAA,EAAUC,IAAI;AAC/B","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useWarnIfDepsChange } from "./useWarnIfDepsChange.native.js";
|
|
3
|
+
function useMemoStable(getValue, deps) {
|
|
4
|
+
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
|
|
5
|
+
name: "(untitled)"
|
|
6
|
+
};
|
|
7
|
+
return useWarnIfDepsChange(deps, options), useMemo(getValue, deps);
|
|
8
|
+
}
|
|
9
|
+
export { useMemoStable };
|
|
10
|
+
//# sourceMappingURL=useMemoStable.native.js.map
|
|
@@ -0,0 +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;AACxB,SAASC,mBAAA,QAA2B;AAW7B,SAASC,cACdC,QAAA,EACAC,IAAA,EACA;EACE,IAAAC,OAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAEDE,IAAA;EACP;EAIF,OAAAP,mBAAA,CAAAG,IAAA,EAAAC,OAAA,GAAAL,OAAA,CAAAG,QAAA,EAAAC,IAAA","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { isEqualDeepLite } from "@take-out/helpers";
|
|
3
|
+
function useMemoizedObjectList(list, identityKey) {
|
|
4
|
+
const memoizedItems = useRef({}), memoizedList = useRef(list), val = useMemo(() => {
|
|
5
|
+
let res = list, didFindChange = !1;
|
|
6
|
+
const next = [], lastItems = memoizedItems.current;
|
|
7
|
+
list.length !== memoizedList.current.length && (didFindChange = !0);
|
|
8
|
+
for (const item_ of list) {
|
|
9
|
+
const item = item_, id = item[identityKey], last = lastItems[id];
|
|
10
|
+
!last || !isEqualDeepLite(last, item) ? (didFindChange = !0, lastItems[id] = item, next.push(item)) : next.push(last);
|
|
11
|
+
}
|
|
12
|
+
return didFindChange ? res = next : res = memoizedList.current, res;
|
|
13
|
+
}, [identityKey, list]);
|
|
14
|
+
return useEffect(() => {
|
|
15
|
+
memoizedList.current = val;
|
|
16
|
+
}, [val]), val;
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
useMemoizedObjectList
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=useMemoizedObjectList.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useMemoizedObjectList.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,SAAS,cAAc;AAC3C,SAAS,uBAAuB;AAazB,SAAS,sBAId,MAAa,aAA6B;AAC1C,QAAM,gBAAgB,OAA4B,CAAC,CAAC,GAC9C,eAAe,OAAc,IAAI,GAEjC,MAAM,QAAQ,MAAM;AACxB,QAAI,MAAM,MACN,gBAAgB;AACpB,UAAM,OAAO,CAAC,GACR,YAAY,cAAc;AAGhC,IAAI,KAAK,WAAW,aAAa,QAAQ,WACvC,gBAAgB;AAGlB,eAAW,SAAS,MAAM;AACxB,YAAM,OAAO,OACP,KAAK,KAAK,WAAW,GACrB,OAAO,UAAU,EAAE;AAGzB,MAAI,CAAC,QAAQ,CAAC,gBAAgB,MAAM,IAAI,KACtC,gBAAgB,IAWhB,UAAU,EAAE,IAAI,MAChB,KAAK,KAAK,IAAI,KAEd,KAAK,KAAK,IAAI;AAAA,IAElB;AAGA,WAAI,gBACF,MAAM,OAEN,MAAM,aAAa,SAGd;AAAA,EACT,GAAG,CAAC,aAAa,IAAI,CAAC;AAEtB,mBAAU,MAAM;AACd,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,GAAG,CAAC,GAED;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { isEqualDeepLite } from "@take-out/helpers";
|
|
3
|
+
function useMemoizedObjectList(list, identityKey) {
|
|
4
|
+
const memoizedItems = useRef({}),
|
|
5
|
+
memoizedList = useRef(list),
|
|
6
|
+
val = useMemo(() => {
|
|
7
|
+
let res = list,
|
|
8
|
+
didFindChange = !1;
|
|
9
|
+
const next = [],
|
|
10
|
+
lastItems = memoizedItems.current;
|
|
11
|
+
list.length !== memoizedList.current.length && (didFindChange = !0);
|
|
12
|
+
for (const item_ of list) {
|
|
13
|
+
const item = item_,
|
|
14
|
+
id = item[identityKey],
|
|
15
|
+
last = lastItems[id];
|
|
16
|
+
!last || !isEqualDeepLite(last, item) ? (didFindChange = !0, lastItems[id] = item, next.push(item)) : next.push(last);
|
|
17
|
+
}
|
|
18
|
+
return didFindChange ? res = next : res = memoizedList.current, res;
|
|
19
|
+
}, [identityKey, list]);
|
|
20
|
+
return useEffect(() => {
|
|
21
|
+
memoizedList.current = val;
|
|
22
|
+
}, [val]), val;
|
|
23
|
+
}
|
|
24
|
+
export { useMemoizedObjectList };
|
|
25
|
+
//# sourceMappingURL=useMemoizedObjectList.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","isEqualDeepLite","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,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAC3C,SAASC,eAAA,QAAuB;AAazB,SAASC,sBAIdC,IAAA,EAAaC,WAAA,EAA6B;EAC1C,MAAMC,aAAA,GAAgBL,MAAA,CAA4B,CAAC,CAAC;IAC9CM,YAAA,GAAeN,MAAA,CAAcG,IAAI;IAEjCI,GAAA,GAAMR,OAAA,CAAQ,MAAM;MACxB,IAAIS,GAAA,GAAML,IAAA;QACNM,aAAA,GAAgB;MACpB,MAAMC,IAAA,GAAO,EAAC;QACRC,SAAA,GAAYN,aAAA,CAAcO,OAAA;MAG5BT,IAAA,CAAKU,MAAA,KAAWP,YAAA,CAAaM,OAAA,CAAQC,MAAA,KACvCJ,aAAA,GAAgB;MAGlB,WAAWK,KAAA,IAASX,IAAA,EAAM;QACxB,MAAMY,IAAA,GAAOD,KAAA;UACPE,EAAA,GAAKD,IAAA,CAAKX,WAAW;UACrBa,IAAA,GAAON,SAAA,CAAUK,EAAE;QAGrB,CAACC,IAAA,IAAQ,CAAChB,eAAA,CAAgBgB,IAAA,EAAMF,IAAI,KACtCN,aAAA,GAAgB,IAWhBE,SAAA,CAAUK,EAAE,IAAID,IAAA,EAChBL,IAAA,CAAKQ,IAAA,CAAKH,IAAI,KAEdL,IAAA,CAAKQ,IAAA,CAAKD,IAAI;MAElB;MAGA,OAAIR,aAAA,GACFD,GAAA,GAAME,IAAA,GAENF,GAAA,GAAMF,YAAA,CAAaM,OAAA,EAGdJ,GAAA;IACT,GAAG,CAACJ,WAAA,EAAaD,IAAI,CAAC;EAEtB,OAAAL,SAAA,CAAU,MAAM;IACdQ,YAAA,CAAaM,OAAA,GAAUL,GAAA;EACzB,GAAG,CAACA,GAAG,CAAC,GAEDA,GAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { isEqualDeepLite } from "@take-out/helpers";
|
|
3
|
+
function useMemoizedObjectList(list, identityKey) {
|
|
4
|
+
var memoizedItems = useRef({}),
|
|
5
|
+
memoizedList = useRef(list),
|
|
6
|
+
val = useMemo(function () {
|
|
7
|
+
var res = list,
|
|
8
|
+
didFindChange = !1,
|
|
9
|
+
next = [],
|
|
10
|
+
lastItems = memoizedItems.current;
|
|
11
|
+
list.length !== memoizedList.current.length && (didFindChange = !0);
|
|
12
|
+
var _iteratorNormalCompletion = !0,
|
|
13
|
+
_didIteratorError = !1,
|
|
14
|
+
_iteratorError = void 0;
|
|
15
|
+
try {
|
|
16
|
+
for (var _iterator = list[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
17
|
+
var item_ = _step.value,
|
|
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);
|
|
22
|
+
}
|
|
23
|
+
} catch (err) {
|
|
24
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
25
|
+
} finally {
|
|
26
|
+
try {
|
|
27
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
28
|
+
} finally {
|
|
29
|
+
if (_didIteratorError) throw _iteratorError;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return didFindChange ? res = next : res = memoizedList.current, res;
|
|
33
|
+
}, [identityKey, list]);
|
|
34
|
+
return useEffect(function () {
|
|
35
|
+
memoizedList.current = val;
|
|
36
|
+
}, [val]), val;
|
|
37
|
+
}
|
|
38
|
+
export { useMemoizedObjectList };
|
|
39
|
+
//# sourceMappingURL=useMemoizedObjectList.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","isEqualDeepLite","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,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAC3C,SAASC,eAAA,QAAuB;AAazB,SAASC,sBAIdC,IAAA,EAAaC,WAAA,EAA6B;EAC1C,IAAAC,aAAM,GAAAL,MAAgB,GAA4B,CAAC;IAACM,YAC9C,GAAAN,MAAe,CAAAG,IAAc;IAAII,GAEjC,GAAAR,OAAM,aAAc;MACxB,IAAIS,GAAA,GAAML,IAAA;QACNM,aAAA,GAAgB;QAAAC,IAAA;QAAAC,SAAA,GAAAN,aAAA,CAAAO,OAAA;MACpBT,IAAA,CAAAU,MAAM,KAAQP,YACR,CAAYM,OAAA,CAAAC,MAAc,KAAAJ,aAAA;MAG5B,IAAAK,yBAA6B;QAAAC,iBAC/B;QAAAC,cAAgB;MAGlB;QACE,SAAMC,SAAO,GACPd,IAAK,CAAAe,MAAK,CAAAC,QAAW,GACrB,EAAAC,KAAO,IAAAN,yBAAY,IAAAM,KAAA,GAAAH,SAAA,CAAAP,IAAA,IAAAW,IAAA,GAAAP,yBAAA;UAGpB,IAAAQ,KAAS,GAAAF,KAAA,CAAAG,KAAA;YAAgBC,IAAA,GAAMF,KAAI;YACtCG,EAAA,GAAAD,IAAA,CAAApB,WAWA;YAAAsB,IAAA,GAAUf,SAAM,CAAAc,EAChB;UAIJ,CAAAC,IAAA,KAAAzB,eAAA,CAAAyB,IAAA,EAAAF,IAAA,KAAAf,aAAA,OAAAE,SAAA,CAAAc,EAAA,IAAAD,IAAA,EAAAd,IAAA,CAAAiB,IAAA,CAAAH,IAAA,KAAAd,IAAA,CAAAiB,IAAA,CAAAD,IAAA;QAGA;MAOF,CAAG,CAAC,OAAAE,GAAA;QAEJb,iBAAU,GAAM,IAAAC,cAAA,GAAAY,GAAA;MACd;QACE,IAAI;UAGV,CAAAd,yBAAA,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { useEvent } from "tamagui";
|
|
3
|
+
const useThrottle = (fn, delay = 100) => {
|
|
4
|
+
const lastCallTime = useRef(0), timeoutRef = useRef(null), stableFn = useEvent(fn);
|
|
5
|
+
return useEvent((...args) => {
|
|
6
|
+
const now = Date.now(), timeSinceLastCall = now - lastCallTime.current;
|
|
7
|
+
timeSinceLastCall >= delay ? (lastCallTime.current = now, stableFn(...args)) : (timeoutRef.current && clearTimeout(timeoutRef.current), timeoutRef.current = setTimeout(() => {
|
|
8
|
+
lastCallTime.current = Date.now(), stableFn(...args), timeoutRef.current = null;
|
|
9
|
+
}, delay - timeSinceLastCall));
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
useThrottle
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useThrottle.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useThrottle.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAIlB,MAAM,cAAc,CAAoC,IAAO,QAAQ,QAAW;AACvF,QAAM,eAAe,OAAe,CAAC,GAC/B,aAAa,OAAqB,IAAI,GAEtC,WAAW,SAAS,EAAE;AAwB5B,SAtBoB,SAAS,IAAI,SAAwB;AACvD,UAAM,MAAM,KAAK,IAAI,GACf,oBAAoB,MAAM,aAAa;AAE7C,IAAI,qBAAqB,SAEvB,aAAa,UAAU,KACvB,SAAS,GAAG,IAAI,MAGZ,WAAW,WACb,aAAa,WAAW,OAAO,GAGjC,WAAW,UAAU,WAAW,MAAM;AACpC,mBAAa,UAAU,KAAK,IAAI,GAChC,SAAS,GAAG,IAAI,GAChB,WAAW,UAAU;AAAA,IACvB,GAAG,QAAQ,iBAAiB;AAAA,EAEhC,CAAC;AAGH;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { useEvent } from "tamagui";
|
|
3
|
+
const useThrottle = (fn, delay = 100) => {
|
|
4
|
+
const lastCallTime = useRef(0),
|
|
5
|
+
timeoutRef = useRef(null),
|
|
6
|
+
stableFn = useEvent(fn);
|
|
7
|
+
return useEvent((...args) => {
|
|
8
|
+
const now = Date.now(),
|
|
9
|
+
timeSinceLastCall = now - lastCallTime.current;
|
|
10
|
+
timeSinceLastCall >= delay ? (lastCallTime.current = now, stableFn(...args)) : (timeoutRef.current && clearTimeout(timeoutRef.current), timeoutRef.current = setTimeout(() => {
|
|
11
|
+
lastCallTime.current = Date.now(), stableFn(...args), timeoutRef.current = null;
|
|
12
|
+
}, delay - timeSinceLastCall));
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
export { useThrottle };
|
|
16
|
+
//# sourceMappingURL=useThrottle.mjs.map
|
|
@@ -0,0 +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;AACvB,SAASC,QAAA,QAAgB;AAIlB,MAAMC,WAAA,GAAcA,CAAoCC,EAAA,EAAOC,KAAA,GAAQ,QAAW;EACvF,MAAMC,YAAA,GAAeL,MAAA,CAAe,CAAC;IAC/BM,UAAA,GAAaN,MAAA,CAAqB,IAAI;IAEtCO,QAAA,GAAWN,QAAA,CAASE,EAAE;EAwB5B,OAtBoBF,QAAA,CAAS,IAAIO,IAAA,KAAwB;IACvD,MAAMC,GAAA,GAAMC,IAAA,CAAKD,GAAA,CAAI;MACfE,iBAAA,GAAoBF,GAAA,GAAMJ,YAAA,CAAaO,OAAA;IAEzCD,iBAAA,IAAqBP,KAAA,IAEvBC,YAAA,CAAaO,OAAA,GAAUH,GAAA,EACvBF,QAAA,CAAS,GAAGC,IAAI,MAGZF,UAAA,CAAWM,OAAA,IACbC,YAAA,CAAaP,UAAA,CAAWM,OAAO,GAGjCN,UAAA,CAAWM,OAAA,GAAUE,UAAA,CAAW,MAAM;MACpCT,YAAA,CAAaO,OAAA,GAAUF,IAAA,CAAKD,GAAA,CAAI,GAChCF,QAAA,CAAS,GAAGC,IAAI,GAChBF,UAAA,CAAWM,OAAA,GAAU;IACvB,GAAGR,KAAA,GAAQO,iBAAiB;EAEhC,CAAC;AAGH","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { useEvent } from "tamagui";
|
|
3
|
+
var useThrottle = function (fn) {
|
|
4
|
+
var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 100,
|
|
5
|
+
lastCallTime = useRef(0),
|
|
6
|
+
timeoutRef = useRef(null),
|
|
7
|
+
stableFn = useEvent(fn),
|
|
8
|
+
throttledFn = useEvent(function () {
|
|
9
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
10
|
+
var now = Date.now(),
|
|
11
|
+
timeSinceLastCall = now - lastCallTime.current;
|
|
12
|
+
timeSinceLastCall >= delay ? (lastCallTime.current = now, stableFn(...args)) : (timeoutRef.current && clearTimeout(timeoutRef.current), timeoutRef.current = setTimeout(function () {
|
|
13
|
+
lastCallTime.current = Date.now(), stableFn(...args), timeoutRef.current = null;
|
|
14
|
+
}, delay - timeSinceLastCall));
|
|
15
|
+
});
|
|
16
|
+
return throttledFn;
|
|
17
|
+
};
|
|
18
|
+
export { useThrottle };
|
|
19
|
+
//# sourceMappingURL=useThrottle.native.js.map
|
|
@@ -0,0 +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;AACvB,SAASC,QAAA,QAAgB;AAIlB,IAAAC,WAAM,YAAAA,CAAyDC,EAAA;EACpE,IAAAC,KAAM,GAAAC,SAAe,CAAAC,MAAe,GAAC,CAC/B,IAAAD,SAAa,QAAqB,KAAI,CAEtC,GAAAA,SAAW,SAAS;IAAEE,YAAA,GAAAP,MAAA;IAAAQ,UAAA,GAAAR,MAAA;IAAAS,QAAA,GAAAR,QAAA,CAAAE,EAAA;IAAAO,WAAA,GAAAT,QAAA;MAwB5B,KAtBoB,IAAAU,IAAA,GAASN,SAAI,CAAAC,MAAwB,EAAAM,IAAA,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA,IACvDF,IAAM,CAAAE,IAAA,CAAM,GAAAT,SACN,CAAAS,IAAA;MAEF,IAAAC,GAAA,GAAAC,IAAA,CAAAD,GAAA;QAAqBE,iBAEvB,GAAAF,GAAa,GAAAR,YACb,CAAAW,OAAS;MAQPD,iBAAa,IAAAb,KAAU,IAAKG,YAC5B,CAAAW,OAAY,GAAIH,GAChB,EAAAN,QAAA,CAAW,GAAAG,IAAA,MAAUJ,UAAA,CAAAU,OAAA,IAAAC,YAAA,CAAAX,UAAA,CAAAU,OAAA,GAAAV,UAAA,CAAAU,OAAA,GAAAE,UAAA;QACvBb,YAAW,CAAAW,OAAA,GAAAF,IAAiB,CAAAD,GAAA,IAAAN,QAAA,IAAAG,IAAA,GAAAJ,UAAA,CAAAU,OAAA;MAE/B,GAAAd,KAAA,GAAAa,iBAAA;IAGH","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useEffect, useId, useRef } from "react";
|
|
2
|
+
import { getCurrentComponentStack } from "@take-out/helpers";
|
|
3
|
+
function useWarnIfDepsChange(deps, options) {
|
|
4
|
+
const { maxChanges = 0, name, ignoreIndexBefore = 0 } = options, changeCountRef = useRef(0), prevDepsRef = useRef(void 0), id = useId();
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
if (process.env.NODE_ENV === "development") {
|
|
7
|
+
if (prevDepsRef.current !== void 0) {
|
|
8
|
+
const changedDeps = [];
|
|
9
|
+
(ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps).forEach((dep, indexIn) => {
|
|
10
|
+
const index = indexIn + ignoreIndexBefore;
|
|
11
|
+
prevDepsRef.current && prevDepsRef.current[index] !== dep && changedDeps.push({
|
|
12
|
+
index,
|
|
13
|
+
prev: prevDepsRef.current[index],
|
|
14
|
+
next: dep
|
|
15
|
+
});
|
|
16
|
+
}), changedDeps.length > 0 && (changeCountRef.current++, changeCountRef.current > maxChanges && console.info(
|
|
17
|
+
`\u{1F504} useWarnIfDepsChange "${name}" is changing too often! Changed ${changeCountRef.current} times (max: ${maxChanges})`,
|
|
18
|
+
changedDeps,
|
|
19
|
+
`
|
|
20
|
+
id (${id}) at:`,
|
|
21
|
+
getCurrentComponentStack("short")
|
|
22
|
+
));
|
|
23
|
+
}
|
|
24
|
+
prevDepsRef.current = deps;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
useWarnIfDepsChange
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useWarnIfDepsChange.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useWarnIfDepsChange.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,OAAO,cAAc;AACzC,SAAS,gCAAgC;AAQlC,SAAS,oBACd,MACA,SACM;AACN,QAAM,EAAE,aAAa,GAAG,MAAM,oBAAoB,EAAE,IAAI,SAElD,iBAAiB,OAAO,CAAC,GACzB,cAAc,OAAsB,MAAS,GAC7C,KAAK,MAAM;AAEjB,YAAU,MAAM;AACd,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,YAAY,YAAY,QAAW;AACrC,cAAM,cAID,CAAC;AAIN,SAFoB,oBAAoB,KAAK,MAAM,iBAAiB,IAAI,MAE5D,QAAQ,CAAC,KAAK,YAAY;AACpC,gBAAM,QAAQ,UAAU;AAExB,UAAI,YAAY,WAAW,YAAY,QAAQ,KAAK,MAAM,OACxD,YAAY,KAAK;AAAA,YACf;AAAA,YACA,MAAM,YAAY,QAAQ,KAAK;AAAA,YAC/B,MAAM;AAAA,UACR,CAAC;AAAA,QAEL,CAAC,GAEG,YAAY,SAAS,MACvB,eAAe,WAEX,eAAe,UAAU,cAE3B,QAAQ;AAAA,UACN,kCAA2B,IAAI,oCAAoC,eAAe,OAAO,gBAAgB,UAAU;AAAA,UACnH;AAAA,UACA;AAAA,OAAU,EAAE;AAAA,UACZ,yBAAyB,OAAO;AAAA,QAClC;AAAA,MAGN;AAEA,kBAAY,UAAU;AAAA,IACxB;AAAA,EACF,CAAC;AACH;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useEffect, useId, useRef } from "react";
|
|
2
|
+
import { getCurrentComponentStack } from "@take-out/helpers";
|
|
3
|
+
function useWarnIfDepsChange(deps, options) {
|
|
4
|
+
const {
|
|
5
|
+
maxChanges = 0,
|
|
6
|
+
name,
|
|
7
|
+
ignoreIndexBefore = 0
|
|
8
|
+
} = options,
|
|
9
|
+
changeCountRef = useRef(0),
|
|
10
|
+
prevDepsRef = useRef(void 0),
|
|
11
|
+
id = useId();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (process.env.NODE_ENV === "development") {
|
|
14
|
+
if (prevDepsRef.current !== void 0) {
|
|
15
|
+
const changedDeps = [];
|
|
16
|
+
(ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps).forEach((dep, indexIn) => {
|
|
17
|
+
const index = indexIn + ignoreIndexBefore;
|
|
18
|
+
prevDepsRef.current && prevDepsRef.current[index] !== dep && changedDeps.push({
|
|
19
|
+
index,
|
|
20
|
+
prev: prevDepsRef.current[index],
|
|
21
|
+
next: dep
|
|
22
|
+
});
|
|
23
|
+
}), changedDeps.length > 0 && (changeCountRef.current++, changeCountRef.current > maxChanges && console.info(`\u{1F504} useWarnIfDepsChange "${name}" is changing too often! Changed ${changeCountRef.current} times (max: ${maxChanges})`, changedDeps, `
|
|
24
|
+
id (${id}) at:`, getCurrentComponentStack("short")));
|
|
25
|
+
}
|
|
26
|
+
prevDepsRef.current = deps;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export { useWarnIfDepsChange };
|
|
31
|
+
//# sourceMappingURL=useWarnIfDepsChange.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useId","useRef","getCurrentComponentStack","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,SAAA,EAAWC,KAAA,EAAOC,MAAA,QAAc;AACzC,SAASC,wBAAA,QAAgC;AAQlC,SAASC,oBACdC,IAAA,EACAC,OAAA,EACM;EACN,MAAM;MAAEC,UAAA,GAAa;MAAGC,IAAA;MAAMC,iBAAA,GAAoB;IAAE,IAAIH,OAAA;IAElDI,cAAA,GAAiBR,MAAA,CAAO,CAAC;IACzBS,WAAA,GAAcT,MAAA,CAAsB,MAAS;IAC7CU,EAAA,GAAKX,KAAA,CAAM;EAEjBD,SAAA,CAAU,MAAM;IACd,IAAIa,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIJ,WAAA,CAAYK,OAAA,KAAY,QAAW;QACrC,MAAMC,WAAA,GAID,EAAC;QAIN,CAFoBR,iBAAA,GAAoBJ,IAAA,CAAKa,KAAA,CAAMT,iBAAiB,IAAIJ,IAAA,EAE5Dc,OAAA,CAAQ,CAACC,GAAA,EAAKC,OAAA,KAAY;UACpC,MAAMC,KAAA,GAAQD,OAAA,GAAUZ,iBAAA;UAEpBE,WAAA,CAAYK,OAAA,IAAWL,WAAA,CAAYK,OAAA,CAAQM,KAAK,MAAMF,GAAA,IACxDH,WAAA,CAAYM,IAAA,CAAK;YACfD,KAAA;YACAE,IAAA,EAAMb,WAAA,CAAYK,OAAA,CAAQM,KAAK;YAC/BG,IAAA,EAAML;UACR,CAAC;QAEL,CAAC,GAEGH,WAAA,CAAYS,MAAA,GAAS,MACvBhB,cAAA,CAAeM,OAAA,IAEXN,cAAA,CAAeM,OAAA,GAAUT,UAAA,IAE3BoB,OAAA,CAAQC,IAAA,CACN,kCAA2BpB,IAAI,oCAAoCE,cAAA,CAAeM,OAAO,gBAAgBT,UAAU,KACnHU,WAAA,EACA;AAAA,OAAUL,EAAE,SACZT,wBAAA,CAAyB,OAAO,CAClC;MAGN;MAEAQ,WAAA,CAAYK,OAAA,GAAUX,IAAA;IACxB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useEffect, useId, useRef } from "react";
|
|
2
|
+
import { getCurrentComponentStack } from "@take-out/helpers";
|
|
3
|
+
function useWarnIfDepsChange(deps, options) {
|
|
4
|
+
var {
|
|
5
|
+
maxChanges = 0,
|
|
6
|
+
name,
|
|
7
|
+
ignoreIndexBefore = 0
|
|
8
|
+
} = options,
|
|
9
|
+
changeCountRef = useRef(0),
|
|
10
|
+
prevDepsRef = useRef(void 0),
|
|
11
|
+
id = useId();
|
|
12
|
+
useEffect(function () {
|
|
13
|
+
if (process.env.NODE_ENV === "development") {
|
|
14
|
+
if (prevDepsRef.current !== void 0) {
|
|
15
|
+
var changedDeps = [],
|
|
16
|
+
compareDeps = ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps;
|
|
17
|
+
compareDeps.forEach(function (dep, indexIn) {
|
|
18
|
+
var index = indexIn + ignoreIndexBefore;
|
|
19
|
+
prevDepsRef.current && prevDepsRef.current[index] !== dep && changedDeps.push({
|
|
20
|
+
index,
|
|
21
|
+
prev: prevDepsRef.current[index],
|
|
22
|
+
next: dep
|
|
23
|
+
});
|
|
24
|
+
}), changedDeps.length > 0 && (changeCountRef.current++, changeCountRef.current > maxChanges && console.info(`\u{1F504} useWarnIfDepsChange "${name}" is changing too often! Changed ${changeCountRef.current} times (max: ${maxChanges})`, changedDeps, `
|
|
25
|
+
id (${id}) at:`, getCurrentComponentStack("short")));
|
|
26
|
+
}
|
|
27
|
+
prevDepsRef.current = deps;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export { useWarnIfDepsChange };
|
|
32
|
+
//# sourceMappingURL=useWarnIfDepsChange.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useId","useRef","getCurrentComponentStack","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,SAAA,EAAWC,KAAA,EAAOC,MAAA,QAAc;AACzC,SAASC,wBAAA,QAAgC;AAQlC,SAASC,oBACdC,IAAA,EACAC,OAAA,EACM;EACN;MAAMC,UAAE;MAAaC,IAAG;MAAAC,iBAAM;IAAoB,IAAEH,OAAI;IAAAI,cAElD,GAAAR,MAAiB,GAAO;IAACS,WACzB,GAAAT,MAAc,MAAsB;IAASU,EAC7C,GAAAX,KAAK;EAEXD,SAAA,CAAU,YAAM;IACd,IAAIa,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIJ,WAAA,CAAYK,OAAA,KAAY,QAAW;QACrC,IAAAC,WAAM,KAID;UAACC,WAAA,GAAAT,iBAAA,GAAAJ,IAAA,CAAAc,KAAA,CAAAV,iBAAA,IAAAJ,IAAA;QAINa,WAFoB,CAAAE,OAAA,WAAyBC,GAAM,EAAAC,OAAA;UAGjD,IAAAC,KAAM,GAAAD,OAAQ,GAAAb,iBAAU;UAEpBE,WAAA,CAAYK,OAAA,IAAWL,WAAA,CAAYK,OAAA,CAAQO,KAAK,MAAMF,GAAA,IACxDJ,WAAA,CAAYO,IAAA,CAAK;YACfD,KAAA;YACAE,IAAA,EAAMd,WAAA,CAAYK,OAAA,CAAQO,KAAK;YAC/BG,IAAA,EAAML;UACR,CAAC;QAEL,CAAC,GAEGJ,WAAA,CAAYU,MAAA,GAAS,MACvBjB,cAAA,CAAeM,OAAA,IAEXN,cAAA,CAAeM,OAAA,GAAUT,UAAA,IAE3BqB,OAAA,CAAQC,IAAA,mCAAArB,IAAA,oCAAAE,cAAA,CAAAM,OAAA,gBAAAT,UAAA,KAAAU,WAAA;AAAA,OAAAL,EAAA,OACN,EAAAT,wBAAA,QAA+B;MAAoF;MACnHQ,WACA,CAAAK,OAAA,GAAAX,IAAA;IAAA;EAAY;AACoB;AAClC,SAKND,mBAAY","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
import { emptyFn } from "@take-out/helpers";
|
|
3
|
+
const useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? emptyFn : (value, threshold = 5, name) => {
|
|
4
|
+
const countRef = useRef(0), prevValueRef = useRef(value);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
prevValueRef.current !== value && (countRef.current++, prevValueRef.current = value, countRef.current > threshold && console.warn(
|
|
7
|
+
`\u{1F504} ${name || "Memoized value"} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`
|
|
8
|
+
));
|
|
9
|
+
}, [value, threshold, name]);
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
useWarnIfMemoChangesOften
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=useWarnIfMemoChangesOften.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useWarnIfMemoChangesOften.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,cAAc;AAClC,SAAS,eAAe;AAEjB,MAAM,4BACX,QAAQ,IAAI,aAAa,eACpB,UACD,CAAI,OAAU,YAAY,GAAG,SAAkB;AAC7C,QAAM,WAAW,OAAO,CAAC,GACnB,eAAe,OAAU,KAAK;AAEpC,YAAU,MAAM;AACd,IAAI,aAAa,YAAY,UAC3B,SAAS,WACT,aAAa,UAAU,OAEnB,SAAS,UAAU,aAErB,QAAQ;AAAA,MACN,aAFkB,QAAQ,gBAET,mCAAmC,SAAS,OAAO,sBAAsB,SAAS;AAAA,IACrG;AAAA,EAGN,GAAG,CAAC,OAAO,WAAW,IAAI,CAAC;AAC7B;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
import { emptyFn } from "@take-out/helpers";
|
|
3
|
+
const useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? emptyFn : (value, threshold = 5, name) => {
|
|
4
|
+
const countRef = useRef(0),
|
|
5
|
+
prevValueRef = useRef(value);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
prevValueRef.current !== value && (countRef.current++, prevValueRef.current = value, countRef.current > threshold && console.warn(`\u{1F504} ${name || "Memoized value"} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`));
|
|
8
|
+
}, [value, threshold, name]);
|
|
9
|
+
};
|
|
10
|
+
export { useWarnIfMemoChangesOften };
|
|
11
|
+
//# sourceMappingURL=useWarnIfMemoChangesOften.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","emptyFn","useWarnIfMemoChangesOften","process","env","NODE_ENV","value","threshold","name","countRef","prevValueRef","current","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,OAAA,QAAe;AAEjB,MAAMC,yBAAA,GACXC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACpBJ,OAAA,GACD,CAAIK,KAAA,EAAUC,SAAA,GAAY,GAAGC,IAAA,KAAkB;EAC7C,MAAMC,QAAA,GAAWT,MAAA,CAAO,CAAC;IACnBU,YAAA,GAAeV,MAAA,CAAUM,KAAK;EAEpCP,SAAA,CAAU,MAAM;IACVW,YAAA,CAAaC,OAAA,KAAYL,KAAA,KAC3BG,QAAA,CAASE,OAAA,IACTD,YAAA,CAAaC,OAAA,GAAUL,KAAA,EAEnBG,QAAA,CAASE,OAAA,GAAUJ,SAAA,IAErBK,OAAA,CAAQC,IAAA,CACN,aAFkBL,IAAA,IAAQ,gBAET,mCAAmCC,QAAA,CAASE,OAAO,sBAAsBJ,SAAS,GACrG;EAGN,GAAG,CAACD,KAAA,EAAOC,SAAA,EAAWC,IAAI,CAAC;AAC7B","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
import { emptyFn } from "@take-out/helpers";
|
|
3
|
+
var useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? emptyFn : function (value) {
|
|
4
|
+
var threshold = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 5,
|
|
5
|
+
name = arguments.length > 2 ? arguments[2] : void 0,
|
|
6
|
+
countRef = useRef(0),
|
|
7
|
+
prevValueRef = useRef(value);
|
|
8
|
+
useEffect(function () {
|
|
9
|
+
if (prevValueRef.current !== value && (countRef.current++, prevValueRef.current = value, countRef.current > threshold)) {
|
|
10
|
+
var warningName = name || "Memoized value";
|
|
11
|
+
console.warn(`\u{1F504} ${warningName} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`);
|
|
12
|
+
}
|
|
13
|
+
}, [value, threshold, name]);
|
|
14
|
+
};
|
|
15
|
+
export { useWarnIfMemoChangesOften };
|
|
16
|
+
//# sourceMappingURL=useWarnIfMemoChangesOften.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","emptyFn","useWarnIfMemoChangesOften","process","env","NODE_ENV","value","threshold","arguments","length","name","countRef","prevValueRef","current","warningName","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,OAAA,QAAe;AAEjB,IAAAC,yBAAM,GAAAC,OACX,CAAAC,GAAQ,CAAAC,QAAI,iBAAa,GAAAJ,OACpB,aACGK,KAAU;EACZ,IAAAC,SAAM,GAAAC,SAAmB,CAAAC,MACnB,QAAAD,SAAe,CAAU,OAAK,SAAAA,SAAA;IAAAE,IAAA,GAAAF,SAAA,CAAAC,MAAA,OAAAD,SAAA;IAAAG,QAAA,GAAAX,MAAA;IAAAY,YAAA,GAAAZ,MAAA,CAAAM,KAAA;EAEpCP,SAAA,CAAU,YAAM;IACV,IAAAa,YAAa,CAAAC,OAAA,KAAYP,KAAA,KAC3BK,QAAS,CAAAE,OACT,IAAAD,YAAa,CAAAC,OAAU,GAAAP,KAEnB,EAAAK,QAAS,CAAAE,OAAU,GAAAN,SAErB;MACE,IAAAO,WAFkB,GAAAJ,IAAQ,oBAET;MACnBK,OAAA,CAAAC,IAAA,cAAAF,WAAA,mCAAAH,QAAA,CAAAE,OAAA,sBAAAN,SAAA;IAGN;EACF,I","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@take-out/hooks",
|
|
3
|
+
"version": "0.0.28",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"source": "src/index.ts",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/cjs",
|
|
8
|
+
"module": "dist/esm",
|
|
9
|
+
"types": "./src/index.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"src",
|
|
12
|
+
"types",
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tamagui-build --skip-types",
|
|
17
|
+
"watch": "tamagui-build --skip-types --watch",
|
|
18
|
+
"lint": "biome check src",
|
|
19
|
+
"lint:fix": "biome check --write src",
|
|
20
|
+
"clean": "tamagui-build clean",
|
|
21
|
+
"clean:build": "tamagui-build clean:build"
|
|
22
|
+
},
|
|
23
|
+
"exports": {
|
|
24
|
+
"./package.json": "./package.json",
|
|
25
|
+
".": {
|
|
26
|
+
"react-native": {
|
|
27
|
+
"import": "./dist/esm/index.native.js",
|
|
28
|
+
"require": "./dist/cjs/index.native.js"
|
|
29
|
+
},
|
|
30
|
+
"types": "./src/index.ts",
|
|
31
|
+
"import": "./dist/esm/index.mjs",
|
|
32
|
+
"require": "./dist/cjs/index.cjs",
|
|
33
|
+
"default": "./dist/cjs/index.native.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"react": "*",
|
|
38
|
+
"@take-out/helpers": "0.0.28",
|
|
39
|
+
"tamagui": "*"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"react": "*",
|
|
43
|
+
"react-native": "*",
|
|
44
|
+
"tamagui": "*"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@tamagui/build": "*",
|
|
48
|
+
"react": "*",
|
|
49
|
+
"react-native": "*"
|
|
50
|
+
},
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public"
|
|
53
|
+
}
|
|
54
|
+
}
|