@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.
Files changed (109) hide show
  1. package/dist/cjs/index.cjs +7 -5
  2. package/dist/cjs/index.native.js +7 -5
  3. package/dist/cjs/index.native.js.map +1 -1
  4. package/dist/cjs/useClickOutside.cjs +24 -15
  5. package/dist/cjs/useClickOutside.native.js +34 -22
  6. package/dist/cjs/useClickOutside.native.js.map +1 -1
  7. package/dist/cjs/useDebouncePrepend.cjs +47 -27
  8. package/dist/cjs/useDebouncePrepend.native.js +48 -32
  9. package/dist/cjs/useDebouncePrepend.native.js.map +1 -1
  10. package/dist/cjs/useDeepMemoizedObject.cjs +154 -95
  11. package/dist/cjs/useDeepMemoizedObject.native.js +177 -111
  12. package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -1
  13. package/dist/cjs/useDeepMemoizedObject.test.cjs +269 -199
  14. package/dist/cjs/useDeepMemoizedObject.test.native.js +265 -202
  15. package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -1
  16. package/dist/cjs/useDeferredBoolean.cjs +20 -15
  17. package/dist/cjs/useDeferredBoolean.native.js +22 -17
  18. package/dist/cjs/useDeferredBoolean.native.js.map +1 -1
  19. package/dist/cjs/useEffectOnceGlobally.cjs +24 -12
  20. package/dist/cjs/useEffectOnceGlobally.native.js +27 -15
  21. package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -1
  22. package/dist/cjs/useEvent.cjs +14 -11
  23. package/dist/cjs/useEvent.native.js +17 -12
  24. package/dist/cjs/useEvent.native.js.map +1 -1
  25. package/dist/cjs/useIsMounted.cjs +17 -14
  26. package/dist/cjs/useIsMounted.native.js +20 -17
  27. package/dist/cjs/useIsMounted.native.js.map +1 -1
  28. package/dist/cjs/useLastValue.cjs +13 -11
  29. package/dist/cjs/useLastValue.native.js +13 -11
  30. package/dist/cjs/useLastValue.native.js.map +1 -1
  31. package/dist/cjs/useLastValueIf.cjs +21 -14
  32. package/dist/cjs/useLastValueIf.native.js +21 -14
  33. package/dist/cjs/useLastValueIf.native.js.map +1 -1
  34. package/dist/cjs/useMemoStable.cjs +17 -14
  35. package/dist/cjs/useMemoStable.native.js +17 -14
  36. package/dist/cjs/useMemoStable.native.js.map +1 -1
  37. package/dist/cjs/useMemoizedObjectList.cjs +45 -29
  38. package/dist/cjs/useMemoizedObjectList.native.js +60 -39
  39. package/dist/cjs/useMemoizedObjectList.native.js.map +1 -1
  40. package/dist/cjs/useThrottle.cjs +34 -21
  41. package/dist/cjs/useThrottle.native.js +41 -27
  42. package/dist/cjs/useThrottle.native.js.map +1 -1
  43. package/dist/cjs/useWarnIfDepsChange.cjs +38 -27
  44. package/dist/cjs/useWarnIfDepsChange.native.js +38 -28
  45. package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -1
  46. package/dist/cjs/useWarnIfMemoChangesOften.cjs +24 -15
  47. package/dist/cjs/useWarnIfMemoChangesOften.native.js +27 -21
  48. package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -1
  49. package/dist/esm/useClickOutside.mjs +10 -3
  50. package/dist/esm/useClickOutside.mjs.map +1 -1
  51. package/dist/esm/useClickOutside.native.js +20 -10
  52. package/dist/esm/useClickOutside.native.js.map +1 -1
  53. package/dist/esm/useDebouncePrepend.mjs +33 -15
  54. package/dist/esm/useDebouncePrepend.mjs.map +1 -1
  55. package/dist/esm/useDebouncePrepend.native.js +34 -20
  56. package/dist/esm/useDebouncePrepend.native.js.map +1 -1
  57. package/dist/esm/useDeepMemoizedObject.mjs +142 -85
  58. package/dist/esm/useDeepMemoizedObject.mjs.map +1 -1
  59. package/dist/esm/useDeepMemoizedObject.native.js +165 -101
  60. package/dist/esm/useDeepMemoizedObject.native.js.map +1 -1
  61. package/dist/esm/useDeepMemoizedObject.test.mjs +267 -197
  62. package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -1
  63. package/dist/esm/useDeepMemoizedObject.test.native.js +263 -200
  64. package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -1
  65. package/dist/esm/useDeferredBoolean.mjs +8 -5
  66. package/dist/esm/useDeferredBoolean.mjs.map +1 -1
  67. package/dist/esm/useDeferredBoolean.native.js +8 -5
  68. package/dist/esm/useDeferredBoolean.native.js.map +1 -1
  69. package/dist/esm/useEffectOnceGlobally.mjs +12 -2
  70. package/dist/esm/useEffectOnceGlobally.mjs.map +1 -1
  71. package/dist/esm/useEffectOnceGlobally.native.js +13 -3
  72. package/dist/esm/useEffectOnceGlobally.native.js.map +1 -1
  73. package/dist/esm/useEvent.mjs +2 -1
  74. package/dist/esm/useEvent.mjs.map +1 -1
  75. package/dist/esm/useEvent.native.js +5 -2
  76. package/dist/esm/useEvent.native.js.map +1 -1
  77. package/dist/esm/useIsMounted.mjs +5 -4
  78. package/dist/esm/useIsMounted.mjs.map +1 -1
  79. package/dist/esm/useIsMounted.native.js +5 -4
  80. package/dist/esm/useIsMounted.native.js.map +1 -1
  81. package/dist/esm/useLastValue.mjs +1 -1
  82. package/dist/esm/useLastValue.mjs.map +1 -1
  83. package/dist/esm/useLastValue.native.js +1 -1
  84. package/dist/esm/useLastValue.native.js.map +1 -1
  85. package/dist/esm/useLastValueIf.mjs +9 -4
  86. package/dist/esm/useLastValueIf.mjs.map +1 -1
  87. package/dist/esm/useLastValueIf.native.js +9 -4
  88. package/dist/esm/useLastValueIf.native.js.map +1 -1
  89. package/dist/esm/useMemoStable.mjs +3 -2
  90. package/dist/esm/useMemoStable.mjs.map +1 -1
  91. package/dist/esm/useMemoStable.native.js +3 -2
  92. package/dist/esm/useMemoStable.native.js.map +1 -1
  93. package/dist/esm/useMemoizedObjectList.mjs +31 -17
  94. package/dist/esm/useMemoizedObjectList.mjs.map +1 -1
  95. package/dist/esm/useMemoizedObjectList.native.js +46 -27
  96. package/dist/esm/useMemoizedObjectList.native.js.map +1 -1
  97. package/dist/esm/useThrottle.mjs +20 -9
  98. package/dist/esm/useThrottle.mjs.map +1 -1
  99. package/dist/esm/useThrottle.native.js +24 -12
  100. package/dist/esm/useThrottle.native.js.map +1 -1
  101. package/dist/esm/useWarnIfDepsChange.mjs +24 -15
  102. package/dist/esm/useWarnIfDepsChange.mjs.map +1 -1
  103. package/dist/esm/useWarnIfDepsChange.native.js +24 -16
  104. package/dist/esm/useWarnIfDepsChange.native.js.map +1 -1
  105. package/dist/esm/useWarnIfMemoChangesOften.mjs +10 -3
  106. package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -1
  107. package/dist/esm/useWarnIfMemoChangesOften.native.js +10 -6
  108. package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -1
  109. package/package.json +3 -3
@@ -5,51 +5,61 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: !0
23
+ value: true
22
24
  }), mod);
23
25
  var useWarnIfDepsChange_exports = {};
24
26
  __export(useWarnIfDepsChange_exports, {
25
27
  useWarnIfDepsChange: () => useWarnIfDepsChange
26
28
  });
27
29
  module.exports = __toCommonJS(useWarnIfDepsChange_exports);
28
- var import_helpers = require("@take-out/helpers"),
29
- import_react = require("react");
30
+ var import_helpers = require("@take-out/helpers");
31
+ var import_react = require("react");
30
32
  function useWarnIfDepsChange(deps, options) {
31
33
  var {
32
- maxChanges = 0,
33
- name,
34
- ignoreIndexBefore = 0
35
- } = options,
36
- changeCountRef = (0, import_react.useRef)(0),
37
- prevDepsRef = (0, import_react.useRef)(void 0),
38
- id = (0, import_react.useId)();
34
+ maxChanges = 0,
35
+ name,
36
+ ignoreIndexBefore = 0
37
+ } = options;
38
+ var changeCountRef = (0, import_react.useRef)(0);
39
+ var prevDepsRef = (0, import_react.useRef)(void 0);
40
+ var id = (0, import_react.useId)();
39
41
  (0, import_react.useEffect)(function () {
40
42
  if (process.env.NODE_ENV === "development") {
41
43
  if (prevDepsRef.current !== void 0) {
42
- var changedDeps = [],
43
- compareDeps = ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps;
44
+ var changedDeps = [];
45
+ var compareDeps = ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps;
44
46
  compareDeps.forEach(function (dep, indexIn) {
45
47
  var index = indexIn + ignoreIndexBefore;
46
- prevDepsRef.current && prevDepsRef.current[index] !== dep && changedDeps.push({
47
- index,
48
- prev: prevDepsRef.current[index],
49
- next: dep
50
- });
51
- }), 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, `
52
- id (${id}) at:`, (0, import_helpers.getCurrentComponentStack)("short")));
48
+ if (prevDepsRef.current && prevDepsRef.current[index] !== dep) {
49
+ changedDeps.push({
50
+ index,
51
+ prev: prevDepsRef.current[index],
52
+ next: dep
53
+ });
54
+ }
55
+ });
56
+ if (changedDeps.length > 0) {
57
+ changeCountRef.current++;
58
+ if (changeCountRef.current > maxChanges) {
59
+ console.info(`\u{1F504} useWarnIfDepsChange "${name}" is changing too often! Changed ${changeCountRef.current} times (max: ${maxChanges})`, changedDeps, `
60
+ id (${id}) at:`, (0, import_helpers.getCurrentComponentStack)("short"));
61
+ }
62
+ }
53
63
  }
54
64
  prevDepsRef.current = deps;
55
65
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useWarnIfDepsChange_exports","__export","useWarnIfDepsChange","module","exports","import_helpers","require","import_react","deps","options","maxChanges","name","ignoreIndexBefore","changeCountRef","useRef","prevDepsRef","id","useId","useEffect","process","env","NODE_ENV","current","changedDeps","compareDeps","slice","forEach","dep","indexIn","index","push","prev","next","length","console","info","getCurrentComponentStack"],"sources":["../../src/useWarnIfDepsChange.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,2BAAA;AAAAC,QAAA,CAAAD,2BAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAyC,CAAAK,2BACzC;AAQO,IAAAK,cAAS,GAAAC,OAAA,CACd,mBAEM;EAAAC,YAAA,GAAAD,OAAA;AACN,SAAMJ,mBAAkBA,CAAAM,IAAM,EAAAC,OAAA;EAM9B;MAAAC,UAAA;MAAAC,IAAA;MAAUC,iBAAM;IAAA,IAAAH,OAAA;IAAAI,cAAA,OAAAN,YAAA,CAAAO,MAAA;IAAAC,WAAA,OAAAR,YAAA,CAAAO,MAAA;IAAAE,EAAA,OAAAT,YAAA,CAAAU,KAAA;EACd,IAAAV,YAAY,CAAAW,SAAI,cAAa;IAC3B,IAAAC,OAAI,CAAAC,GAAA,CAAAC,QAAY,kBAAuB;MACrC,IAAAN,WAAM,CAAAO,OAIA;QAIN,IAFoBC,WAAA;UAAoBC,WAAW,GAAAZ,iBAAqB,GAAAJ,IAE5D,CAAAiB,KAAA,CAAQb,iBAAM,CAAY,GAAAJ,IAAA;QACpCgB,WAAM,CAAAE,OAAQ,WAAUC,GAAA,EAAAC,OAAA;UAEpB,IAAAC,KAAA,GAAYD,OAAA,GAAAhB,iBAAuB;UACpBG,WACf,CAAAO,OAAA,IAAAP,WAAA,CAAAO,OAAA,CAAAO,KAAA,MAAAF,GAAA,IAAAJ,WAAA,CAAAO,IAAA;YACAD,KAAA;YACAE,IAAA,EAAMhB,WAAA,CAAAO,OAAA,CAAAO,KAAA;YACPG,IAAA,EAAAL;UAEJ,EAEG;QAKQ,EACN,EAAAJ,WAAA,CAAAU,MAAA,SAAApB,cAA+B,CAAAS,OAAA,IAAAT,cAAA,CAAAS,OAAoC,GAAAZ,UAAe,IAAAwB,OAAO,CAAAC,IAAA,mCAA0BxB,IAAA,oCAAAE,cAAA,CAAAS,OAAA,gBAAAZ,UAAA,KAAAa,WAAA;AAAA,OAAAP,EAAA,OACnH,MAAAX,cAAA,CAAA+B,wBAAA;MAAA;MACArB,WAAY,CAAAO,OAAA,GAAAd,IAAA;IAAA;EACoB;AAClC","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useWarnIfDepsChange_exports","__export","useWarnIfDepsChange","module","exports","import_helpers","require","import_react","deps","options","maxChanges","name","ignoreIndexBefore","changeCountRef","useRef","prevDepsRef","id","useId","useEffect","process","env","NODE_ENV","current","changedDeps","compareDeps","slice","forEach","dep","indexIn","index","push","prev","next","length","console","info","getCurrentComponentStack"],"sources":["../../src/useWarnIfDepsChange.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,2BAAA;AAAAC,QAAA,CAAAD,2BAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAyC,CAAAK,2BAAA;AACzC,IAAAK,cAAA,GAAyCC,OAAA;AAQlC,IAAAC,YAAS,GAAAD,OAAA,QACd,CACA;AAEA,SAAMJ,mBAAkBA,CAAAM,IAAM,EAAAC,OAAA;EAE9B;IAAMC,UAAA;IAAAC,IAAA;IAAiBC,iBAAA,GAAO;EAAC,IAAAH,OAAA;EAC/B,IAAAI,cAAM,OAAcN,YAAA,CAAAO,MAAA,EAAsB;EAC1C,IAAAC,WAAW,OAAAR,YAAA,CAAMO,MAAA;EAEjB,IAAAE,EAAA,OAAAT,YAAA,CAAAU,KAAU,GAAM;EACd,IAAAV,YAAY,CAAAW,SAAI,cAAa;IAC3B,IAAAC,OAAI,CAAAC,GAAA,CAAAC,QAAY,kBAAuB;MACrC,IAAAN,WAAM,CAAAO,OAIA;QAEN,IAAAC,WAAM,KAAc;QAEpB,IAAAC,WAAY,GAAAZ,iBAAc,GAAYJ,IAAA,CAAAiB,KAAA,CAAAb,iBAAA,IAAAJ,IAAA;QACpCgB,WAAM,CAAAE,OAAQ,WAAUC,GAAA,EAAAC,OAAA;UAExB,IAAIC,KAAA,GAAAD,OAAY,GAAAhB,iBAAuB;UACrC,IAAAG,WAAY,CAAAO,OAAK,IAAAP,WAAA,CAAAO,OAAA,CAAAO,KAAA,MAAAF,GAAA;YAAAJ,WACf,CAAAO,IAAA;cACAD,KAAA;cACAE,IAAA,EAAMhB,WAAA,CAAAO,OAAA,CAAAO,KAAA;cACPG,IAAA,EAAAL;YACH;UACD;QAED;QACE,IAAAJ,WAAA,CAAAU,MAAe;UAEfpB,cAAI,CAAAS,OAAe;UAEjB,IAAAT,cAAQ,CAAAS,OAAA,GAAAZ,UAAA;YAAAwB,OACN,CAAAC,IAAA,mCAA+BxB,IAAA,oCAAoCE,cAAsB,CAAAS,OAAA,gBAA0BZ,UAAA,KAAAa,WAAA;AAAA,OAAAP,EAAA,OACnH,MAAAX,cAAA,CAAA+B,wBAAA;UAAA;QACU;MAAE;MACoBrB,WAClC,CAAAO,OAAA,GAAAd,IAAA;IAAA;EACF;AACF","ignoreList":[]}
@@ -3,32 +3,41 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
9
- });
10
- },
11
- __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
14
  get: () => from[key],
14
15
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
16
  });
16
- return to;
17
- };
17
+ }
18
+ return to;
19
+ };
18
20
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
- value: !0
21
+ value: true
20
22
  }), mod);
21
23
  var useWarnIfMemoChangesOften_exports = {};
22
24
  __export(useWarnIfMemoChangesOften_exports, {
23
25
  useWarnIfMemoChangesOften: () => useWarnIfMemoChangesOften
24
26
  });
25
27
  module.exports = __toCommonJS(useWarnIfMemoChangesOften_exports);
26
- var import_helpers = require("@take-out/helpers"),
27
- import_react = require("react");
28
+ var import_helpers = require("@take-out/helpers");
29
+ var import_react = require("react");
28
30
  const useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? import_helpers.emptyFn : (value, threshold = 5, name) => {
29
- const countRef = (0, import_react.useRef)(0),
30
- prevValueRef = (0, import_react.useRef)(value);
31
+ const countRef = (0, import_react.useRef)(0);
32
+ const prevValueRef = (0, import_react.useRef)(value);
31
33
  (0, import_react.useEffect)(() => {
32
- 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})`));
34
+ if (prevValueRef.current !== value) {
35
+ countRef.current++;
36
+ prevValueRef.current = value;
37
+ if (countRef.current > threshold) {
38
+ const warningName = name || "Memoized value";
39
+ console.warn(`\u{1F504} ${warningName} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`);
40
+ }
41
+ }
33
42
  }, [value, threshold, name]);
34
43
  };
@@ -5,38 +5,44 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: !0
23
+ value: true
22
24
  }), mod);
23
25
  var useWarnIfMemoChangesOften_exports = {};
24
26
  __export(useWarnIfMemoChangesOften_exports, {
25
27
  useWarnIfMemoChangesOften: () => useWarnIfMemoChangesOften
26
28
  });
27
29
  module.exports = __toCommonJS(useWarnIfMemoChangesOften_exports);
28
- var import_helpers = require("@take-out/helpers"),
29
- import_react = require("react"),
30
- useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? import_helpers.emptyFn : function (value) {
31
- var threshold = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 5,
32
- name = arguments.length > 2 ? arguments[2] : void 0,
33
- countRef = (0, import_react.useRef)(0),
34
- prevValueRef = (0, import_react.useRef)(value);
35
- (0, import_react.useEffect)(function () {
36
- if (prevValueRef.current !== value && (countRef.current++, prevValueRef.current = value, countRef.current > threshold)) {
30
+ var import_helpers = require("@take-out/helpers");
31
+ var import_react = require("react");
32
+ var useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? import_helpers.emptyFn : function (value) {
33
+ var threshold = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 5,
34
+ name = arguments.length > 2 ? arguments[2] : void 0;
35
+ var countRef = (0, import_react.useRef)(0);
36
+ var prevValueRef = (0, import_react.useRef)(value);
37
+ (0, import_react.useEffect)(function () {
38
+ if (prevValueRef.current !== value) {
39
+ countRef.current++;
40
+ prevValueRef.current = value;
41
+ if (countRef.current > threshold) {
37
42
  var warningName = name || "Memoized value";
38
43
  console.warn(`\u{1F504} ${warningName} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`);
39
44
  }
40
- }, [value, threshold, name]);
41
- };
45
+ }
46
+ }, [value, threshold, name]);
47
+ };
42
48
  //# sourceMappingURL=useWarnIfMemoChangesOften.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useWarnIfMemoChangesOften_exports","__export","useWarnIfMemoChangesOften","module","exports","import_helpers","require","import_react","process","env","NODE_ENV","emptyFn","threshold","arguments","length","name","countRef","useRef","prevValueRef","useEffect","current","warningName","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,iCAAA;AAAAC,QAAA,CAAAD,iCAAA;EAAAE,yBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAwB,CAAAK,iCACxB;AAEO,IAAAK,cAAM,GAAAC,OAAA,oBACC;EAAAC,YAAa,GAAAD,OAAA,CACpB;EAAAJ,yBACa,GAAAM,OAAY,CAAAC,GAAG,CAAAC,QAAkB,oBAAAL,cAAA,CAAAM,OAAA,aAAAZ,KAAA;IAC7C,IAAAa,SAAM,GAAAC,SAAW,CAAAC,MAAA,QAAAD,SACX,iBAAeA,SAAA;MAAAE,IAAU,GAAKF,SAAA,CAAAC,MAAA,OAAAD,SAAA;MAAAG,QAAA,OAAAT,YAAA,CAAAU,MAAA;MAAAC,YAAA,OAAAX,YAAA,CAAAU,MAAA,EAAAlB,KAAA;IAEpC,IAAAQ,YAAA,CAAAY,SAAA,EAAU,YAAM;MACV,IAAAD,YAAa,CAAAE,OAAA,KAAYrB,KAAA,KAC3BiB,QAAS,CAAAI,OACT,IAAAF,YAAa,CAAAE,OAAU,GAAArB,KAEnB,EAAAiB,QAAS,CAAAI,OAAU,GAAAR,SAErB;QACE,IAAAS,WAFkB,GAAAN,IAAQ,oBAET;QACnBO,OAAA,CAAAC,IAAA,cAAAF,WAAA,mCAAAL,QAAA,CAAAI,OAAA,sBAAAR,SAAA;MAGN;IACF,I","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useWarnIfMemoChangesOften_exports","__export","useWarnIfMemoChangesOften","module","exports","import_helpers","require","import_react","process","env","NODE_ENV","emptyFn","threshold","arguments","length","name","countRef","useRef","prevValueRef","useEffect","current","warningName","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,iCAAA;AAAAC,QAAA,CAAAD,iCAAA;EAAAE,yBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAwB,CAAAK,iCAAA;AACxB,IAAAK,cAAA,GAAkCC,OAAA;AAE3B,IAAAC,YAAM,GAAAD,OAAA,QACX;AAGM,IAAAJ,yBAAiB,GAAAM,OAAA,CAAAC,GAAA,CAAOC,QAAC,oBAAAL,cAAA,CAAAM,OAAA,aAAAZ,KAAA;EACzB,IAAAa,SAAM,GAAAC,SAAe,CAAAC,MAAA,QAAAD,SAAU,EAAK,eAAAA,SAAA;IAAAE,IAAA,GAAAF,SAAA,CAAAC,MAAA,OAAAD,SAAA;EAEpC,IAAAG,QAAA,OAAAT,YAAU,CAAAU,MAAM;EACd,IAAAC,YAAI,GAAa,IAAAX,YAAY,CAAAU,MAAO,EAAAlB,KAAA;EAClC,IAAAQ,YAAS,CAAAY,SAAA;IACT,IAAAD,YAAa,CAAAE,OAAA,KAAUrB,KAAA;MAEvBiB,QAAI,CAAAI,OAAS;MACXF,YAAM,CAAAE,OAAA,GAAcrB,KAAA;MACpB,IAAAiB,QAAQ,CAAAI,OAAA,GAAAR,SAAA;QAAA,IACNS,WAAM,GAAAN,IAAA,IAAW;QACnBO,OAAA,CAAAC,IAAA,cAAAF,WAAA,mCAAAL,QAAA,CAAAI,OAAA,sBAAAR,SAAA;MACF;IACF;EACF,GAAG,CACLb,KAAA,E","ignoreList":[]}
@@ -6,12 +6,19 @@ const useClickOutside = ({
6
6
  onClickOutside
7
7
  }) => {
8
8
  useEffect(() => {
9
- if (!isWeb || !active || !onClickOutside) return;
9
+ if (!isWeb) return;
10
+ if (!active) return;
11
+ if (!onClickOutside) return;
10
12
  const handleClickOutside = e => {
11
13
  const node = ref.current;
12
- node && e.target instanceof HTMLElement && (node.contains(e.target) || onClickOutside());
14
+ if (!node) return;
15
+ if (!(e.target instanceof HTMLElement)) return;
16
+ if (!node.contains(e.target)) {
17
+ onClickOutside();
18
+ }
13
19
  };
14
- return document.addEventListener("click", handleClickOutside), () => {
20
+ document.addEventListener("click", handleClickOutside);
21
+ return () => {
15
22
  document.removeEventListener("click", handleClickOutside);
16
23
  };
17
24
  }, [ref, active, onClickOutside]);
@@ -1 +1 @@
1
- {"version":3,"names":["isWeb","useEffect","useClickOutside","ref","active","onClickOutside","handleClickOutside","e","node","current","target","HTMLElement","contains","document","addEventListener","removeEventListener"],"sources":["../../src/useClickOutside.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AACtB,SAASC,SAAA,QAAiB;AAQnB,MAAMC,eAAA,GAAkBA,CAAC;EAC9BC,GAAA;EACAC,MAAA;EACAC;AACF,MAA4B;EAC1BJ,SAAA,CAAU,MAAM;IAGd,IAFI,CAACD,KAAA,IACD,CAACI,MAAA,IACD,CAACC,cAAA,EAAgB;IAErB,MAAMC,kBAAA,GAAsBC,CAAA,IAAkB;MAC5C,MAAMC,IAAA,GAAOL,GAAA,CAAIM,OAAA;MACZD,IAAA,IACCD,CAAA,CAAEG,MAAA,YAAkBC,WAAA,KACrBH,IAAA,CAAKI,QAAA,CAASL,CAAA,CAAEG,MAAM,KACzBL,cAAA,CAAe;IAEnB;IAEA,OAAAQ,QAAA,CAASC,gBAAA,CAAiB,SAASR,kBAAkB,GAC9C,MAAM;MACXO,QAAA,CAASE,mBAAA,CAAoB,SAAST,kBAAkB;IAC1D;EACF,GAAG,CAACH,GAAA,EAAKC,MAAA,EAAQC,cAAc,CAAC;AAClC","ignoreList":[]}
1
+ {"version":3,"names":["isWeb","useEffect","useClickOutside","ref","active","onClickOutside","handleClickOutside","e","node","current","target","HTMLElement","contains","document","addEventListener","removeEventListener"],"sources":["../../src/useClickOutside.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AACtB,SAASC,SAAA,QAAiB;AAQnB,MAAMC,eAAA,GAAkBA,CAAC;EAC9BC,GAAA;EACAC,MAAA;EACAC;AACF,MAA4B;EAC1BJ,SAAA,CAAU,MAAM;IACd,IAAI,CAACD,KAAA,EAAO;IACZ,IAAI,CAACI,MAAA,EAAQ;IACb,IAAI,CAACC,cAAA,EAAgB;IAErB,MAAMC,kBAAA,GAAsBC,CAAA,IAAkB;MAC5C,MAAMC,IAAA,GAAOL,GAAA,CAAIM,OAAA;MACjB,IAAI,CAACD,IAAA,EAAM;MACX,IAAI,EAAED,CAAA,CAAEG,MAAA,YAAkBC,WAAA,GAAc;MACxC,IAAI,CAACH,IAAA,CAAKI,QAAA,CAASL,CAAA,CAAEG,MAAM,GAAG;QAC5BL,cAAA,CAAe;MACjB;IACF;IAEAQ,QAAA,CAASC,gBAAA,CAAiB,SAASR,kBAAkB;IACrD,OAAO,MAAM;MACXO,QAAA,CAASE,mBAAA,CAAoB,SAAST,kBAAkB;IAC1D;EACF,GAAG,CAACH,GAAA,EAAKC,MAAA,EAAQC,cAAc,CAAC;AAClC","ignoreList":[]}
@@ -1,7 +1,11 @@
1
1
  import { isWeb } from "@take-out/helpers";
2
2
  import { useEffect } from "react";
3
3
  function _instanceof(left, right) {
4
- return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
4
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
5
+ return !!right[Symbol.hasInstance](left);
6
+ } else {
7
+ return left instanceof right;
8
+ }
5
9
  }
6
10
  var useClickOutside = function (param) {
7
11
  var {
@@ -10,15 +14,21 @@ var useClickOutside = function (param) {
10
14
  onClickOutside
11
15
  } = param;
12
16
  useEffect(function () {
13
- if (isWeb && active && onClickOutside) {
14
- var handleClickOutside = function (e) {
15
- var node = ref.current;
16
- node && _instanceof(e.target, HTMLElement) && (node.contains(e.target) || onClickOutside());
17
- };
18
- return document.addEventListener("click", handleClickOutside), function () {
19
- document.removeEventListener("click", handleClickOutside);
20
- };
21
- }
17
+ if (!isWeb) return;
18
+ if (!active) return;
19
+ if (!onClickOutside) return;
20
+ var handleClickOutside = function (e) {
21
+ var node = ref.current;
22
+ if (!node) return;
23
+ if (!_instanceof(e.target, HTMLElement)) return;
24
+ if (!node.contains(e.target)) {
25
+ onClickOutside();
26
+ }
27
+ };
28
+ document.addEventListener("click", handleClickOutside);
29
+ return function () {
30
+ document.removeEventListener("click", handleClickOutside);
31
+ };
22
32
  }, [ref, active, onClickOutside]);
23
33
  };
24
34
  export { useClickOutside };
@@ -1 +1 @@
1
- {"version":3,"names":["isWeb","useEffect","_instanceof","left","right","Symbol","hasInstance","useClickOutside","param","ref","active","onClickOutside","handleClickOutside","e","node","current","target","HTMLElement","contains","document","addEventListener","removeEventListener"],"sources":["../../src/useClickOutside.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AACtB,SAASC,SAAA,QAAiB;AAQnB,SAAMC,YAAAC,IAAmB,EAAAC,KAAA;EAC9B,OAAAA,KAAA,mBAAAC,MAAA,UAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA,MAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAA,EAAAH,IAAA,IAAAA,IAAA,YAAAC,KAAA;AAAA;AACA,IACAG,eAAA,YAAAA,CAAAC,KAAA;EACF,IAA4B;IAAAC,GAAA;IAAAC,MAAA;IAAAC;EAAA,IAAAH,KAAA;EAC1BP,SAAA,CAAU,YAAM;IAGd,IAFID,KAAC,IAAAU,MACA,IAAAC,cACA;MAEL,IAAMC,kBAAA,GAAqB,SAAAA,CAAmBC,CAAA;QAC5C,IAAMC,IAAA,GAAOL,GAAA,CAAIM,OAAA;QACZD,IAAA,IACGZ,WAAA,CAAAW,CAAA,CAAAG,MAAkB,EAAAC,WAAA,CACrB,KAAKH,IAAA,CAAAI,QAAW,CAAAL,CAAA,CAAAG,MACnB,KAAAL,cAAe;MAEnB;MAEA,OAAAQ,QAAS,CAAAC,gBAAiB,QAAS,EAAAR,kBAAkB,CAC9C,cAAM;QACXO,QAAS,CAAAE,mBAAoB,QAAS,EAAAT,kBAAkB;MAC1D;IACF;EACF,I","ignoreList":[]}
1
+ {"version":3,"names":["isWeb","useEffect","_instanceof","left","right","Symbol","hasInstance","useClickOutside","param","ref","active","onClickOutside","handleClickOutside","e","node","current","target","HTMLElement","contains","document","addEventListener"],"sources":["../../src/useClickOutside.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AACtB,SAASC,SAAA,QAAiB;AAQnB,SAAMC,YAAAC,IAAmB,EAAAC,KAAA;EAC9B,IAAAA,KAAA,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACA,SAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EACA;IACF,OAA4BA,IAAA,YAAAC,KAAA;EAC1B;AACE;AACA,IAAAG,eAAa,YAAAA,CAAAC,KAAA;EACb;IAAIC,GAAC;IAAAC,MAAA;IAAAC;EAAgB,IAAAH,KAAA;EAErBP,SAAM;IACJ,KAAAD,KAAM;IACN,KAAAU,MAAK,EAAM;IACX,KAAAC,cAAQ;IACR,IAAAC,kBAAmB,GAAE,SAAAA,CAASC,CAAA;MAC5B,IAAAC,IAAA,GAAAL,GAAA,CAAAM,OAAe;MACjB,KAAAD,IAAA;MACF,KAAAZ,WAAA,CAAAW,CAAA,CAAAG,MAAA,EAAAC,WAAA;MAEA,KAAAH,IAAS,CAAAI,QAAA,CAAAL,CAAA,CAAAG,MAAiB;QAC1BL,cAAa;MACX;IACF;IACFQ,QAAS,CAAAC,gBAAQ,QAAe,EAAAR,kBAAA;IAClC","ignoreList":[]}
@@ -1,23 +1,41 @@
1
1
  import { debounce } from "@take-out/helpers";
2
2
  import { useCallback, useEffect, useMemo, useState } from "react";
3
3
  function useDebouncePrepend(list, delay) {
4
- const [current, setCurrent] = useState(list),
5
- [previous, setPrevious] = useState(list),
6
- [pendingUpdate, setPendingUpdate] = useState(null),
7
- debouncedUpdate = useMemo(() => debounce(newList => {
8
- setCurrent(newList), setPendingUpdate(null);
9
- }, delay), [delay]),
10
- updateState = useCallback(newList => {
11
- setCurrent(prevCurrent => {
12
- const currentList = pendingUpdate || prevCurrent;
13
- return newList.length > previous.length && newList[0]?.id !== previous[0]?.id ? (debouncedUpdate.cancel(), setPendingUpdate(newList), debouncedUpdate(newList), currentList) : (debouncedUpdate.cancel(), setPendingUpdate(null), newList);
14
- });
15
- }, [previous, pendingUpdate, debouncedUpdate]);
16
- return useEffect(() => {
17
- if (list !== previous) return setPrevious(list), updateState(list), () => {
4
+ const [current, setCurrent] = useState(list);
5
+ const [previous, setPrevious] = useState(list);
6
+ const [pendingUpdate, setPendingUpdate] = useState(null);
7
+ const debouncedUpdate = useMemo(() => {
8
+ return debounce(newList => {
9
+ setCurrent(newList);
10
+ setPendingUpdate(null);
11
+ }, delay);
12
+ }, [delay]);
13
+ const updateState = useCallback(newList => {
14
+ setCurrent(prevCurrent => {
15
+ const currentList = pendingUpdate || prevCurrent;
16
+ const isPrepending = newList.length > previous.length && newList[0]?.id !== previous[0]?.id;
17
+ if (isPrepending) {
18
+ debouncedUpdate.cancel();
19
+ setPendingUpdate(newList);
20
+ debouncedUpdate(newList);
21
+ return currentList;
22
+ }
23
+ debouncedUpdate.cancel();
24
+ setPendingUpdate(null);
25
+ return newList;
26
+ });
27
+ }, [previous, pendingUpdate, debouncedUpdate]);
28
+ useEffect(() => {
29
+ if (list === previous) {
30
+ return;
31
+ }
32
+ setPrevious(list);
33
+ updateState(list);
34
+ return () => {
18
35
  debouncedUpdate.cancel();
19
36
  };
20
- }, [list, previous, updateState, debouncedUpdate]), current;
37
+ }, [list, previous, updateState, debouncedUpdate]);
38
+ return current;
21
39
  }
22
40
  export { useDebouncePrepend };
23
41
  //# sourceMappingURL=useDebouncePrepend.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["debounce","useCallback","useEffect","useMemo","useState","useDebouncePrepend","list","delay","current","setCurrent","previous","setPrevious","pendingUpdate","setPendingUpdate","debouncedUpdate","newList","updateState","prevCurrent","currentList","length","id","cancel"],"sources":["../../src/useDebouncePrepend.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,QAAA,QAAgB;AAEnD,SAASC,mBACdC,IAAA,EACAC,KAAA,EACG;EACH,MAAM,CAACC,OAAA,EAASC,UAAU,IAAIL,QAAA,CAASE,IAAI;IACrC,CAACI,QAAA,EAAUC,WAAW,IAAIP,QAAA,CAASE,IAAI;IACvC,CAACM,aAAA,EAAeC,gBAAgB,IAAIT,QAAA,CAAmB,IAAI;IAE3DU,eAAA,GAAkBX,OAAA,CAAQ,MACvBH,QAAA,CAAUe,OAAA,IAAe;MAC9BN,UAAA,CAAWM,OAAO,GAClBF,gBAAA,CAAiB,IAAI;IACvB,GAAGN,KAAK,GACP,CAACA,KAAK,CAAC;IAEJS,WAAA,GAAcf,WAAA,CACjBc,OAAA,IAAe;MACdN,UAAA,CAAYQ,WAAA,IAAgB;QAE1B,MAAMC,WAAA,GAAcN,aAAA,IAAiBK,WAAA;QAMrC,OAFEF,OAAA,CAAQI,MAAA,GAAST,QAAA,CAASS,MAAA,IAAUJ,OAAA,CAAQ,CAAC,GAAGK,EAAA,KAAOV,QAAA,CAAS,CAAC,GAAGU,EAAA,IAIpEN,eAAA,CAAgBO,MAAA,CAAO,GACvBR,gBAAA,CAAiBE,OAAO,GACxBD,eAAA,CAAgBC,OAAO,GAChBG,WAAA,KAITJ,eAAA,CAAgBO,MAAA,CAAO,GACvBR,gBAAA,CAAiB,IAAI,GACdE,OAAA;MACT,CAAC;IACH,GACA,CAACL,QAAA,EAAUE,aAAA,EAAeE,eAAe,CAC3C;EAEA,OAAAZ,SAAA,CAAU,MAAM;IACd,IAAII,IAAA,KAASI,QAAA,EAKb,OAAAC,WAAA,CAAYL,IAAI,GAGhBU,WAAA,CAAYV,IAAI,GAET,MAAM;MACXQ,eAAA,CAAgBO,MAAA,CAAO;IACzB;EACF,GAAG,CAACf,IAAA,EAAMI,QAAA,EAAUM,WAAA,EAAaF,eAAe,CAAC,GAE1CN,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["debounce","useCallback","useEffect","useMemo","useState","useDebouncePrepend","list","delay","current","setCurrent","previous","setPrevious","pendingUpdate","setPendingUpdate","debouncedUpdate","newList","updateState","prevCurrent","currentList","isPrepending","length","id","cancel"],"sources":["../../src/useDebouncePrepend.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,QAAA,QAAgB;AAEnD,SAASC,mBACdC,IAAA,EACAC,KAAA,EACG;EACH,MAAM,CAACC,OAAA,EAASC,UAAU,IAAIL,QAAA,CAASE,IAAI;EAC3C,MAAM,CAACI,QAAA,EAAUC,WAAW,IAAIP,QAAA,CAASE,IAAI;EAC7C,MAAM,CAACM,aAAA,EAAeC,gBAAgB,IAAIT,QAAA,CAAmB,IAAI;EAEjE,MAAMU,eAAA,GAAkBX,OAAA,CAAQ,MAAM;IACpC,OAAOH,QAAA,CAAUe,OAAA,IAAe;MAC9BN,UAAA,CAAWM,OAAO;MAClBF,gBAAA,CAAiB,IAAI;IACvB,GAAGN,KAAK;EACV,GAAG,CAACA,KAAK,CAAC;EAEV,MAAMS,WAAA,GAAcf,WAAA,CACjBc,OAAA,IAAe;IACdN,UAAA,CAAYQ,WAAA,IAAgB;MAE1B,MAAMC,WAAA,GAAcN,aAAA,IAAiBK,WAAA;MAGrC,MAAME,YAAA,GACJJ,OAAA,CAAQK,MAAA,GAASV,QAAA,CAASU,MAAA,IAAUL,OAAA,CAAQ,CAAC,GAAGM,EAAA,KAAOX,QAAA,CAAS,CAAC,GAAGW,EAAA;MAEtE,IAAIF,YAAA,EAAc;QAEhBL,eAAA,CAAgBQ,MAAA,CAAO;QACvBT,gBAAA,CAAiBE,OAAO;QACxBD,eAAA,CAAgBC,OAAO;QACvB,OAAOG,WAAA;MACT;MAGAJ,eAAA,CAAgBQ,MAAA,CAAO;MACvBT,gBAAA,CAAiB,IAAI;MACrB,OAAOE,OAAA;IACT,CAAC;EACH,GACA,CAACL,QAAA,EAAUE,aAAA,EAAeE,eAAe,CAC3C;EAEAZ,SAAA,CAAU,MAAM;IACd,IAAII,IAAA,KAASI,QAAA,EAAU;MACrB;IACF;IAGAC,WAAA,CAAYL,IAAI;IAGhBU,WAAA,CAAYV,IAAI;IAEhB,OAAO,MAAM;MACXQ,eAAA,CAAgBQ,MAAA,CAAO;IACzB;EACF,GAAG,CAAChB,IAAA,EAAMI,QAAA,EAAUM,WAAA,EAAaF,eAAe,CAAC;EAEjD,OAAON,OAAA;AACT","ignoreList":[]}
@@ -1,28 +1,42 @@
1
1
  import { debounce } from "@take-out/helpers";
2
2
  import { useCallback, useEffect, useMemo, useState } from "react";
3
3
  function useDebouncePrepend(list, delay) {
4
- var [current, setCurrent] = useState(list),
5
- [previous, setPrevious] = useState(list),
6
- [pendingUpdate, setPendingUpdate] = useState(null),
7
- debouncedUpdate = useMemo(function () {
8
- return debounce(function (newList) {
9
- setCurrent(newList), setPendingUpdate(null);
10
- }, delay);
11
- }, [delay]),
12
- updateState = useCallback(function (newList) {
13
- setCurrent(function (prevCurrent) {
14
- var _newList_,
15
- _previous_,
16
- currentList = pendingUpdate || prevCurrent,
17
- isPrepending = newList.length > previous.length && ((_newList_ = newList[0]) === null || _newList_ === void 0 ? void 0 : _newList_.id) !== ((_previous_ = previous[0]) === null || _previous_ === void 0 ? void 0 : _previous_.id);
18
- return isPrepending ? (debouncedUpdate.cancel(), setPendingUpdate(newList), debouncedUpdate(newList), currentList) : (debouncedUpdate.cancel(), setPendingUpdate(null), newList);
19
- });
20
- }, [previous, pendingUpdate, debouncedUpdate]);
21
- return useEffect(function () {
22
- if (list !== previous) return setPrevious(list), updateState(list), function () {
4
+ var [current, setCurrent] = useState(list);
5
+ var [previous, setPrevious] = useState(list);
6
+ var [pendingUpdate, setPendingUpdate] = useState(null);
7
+ var debouncedUpdate = useMemo(function () {
8
+ return debounce(function (newList) {
9
+ setCurrent(newList);
10
+ setPendingUpdate(null);
11
+ }, delay);
12
+ }, [delay]);
13
+ var updateState = useCallback(function (newList) {
14
+ setCurrent(function (prevCurrent) {
15
+ var _newList_, _previous_;
16
+ var currentList = pendingUpdate || prevCurrent;
17
+ var isPrepending = newList.length > previous.length && ((_newList_ = newList[0]) === null || _newList_ === void 0 ? void 0 : _newList_.id) !== ((_previous_ = previous[0]) === null || _previous_ === void 0 ? void 0 : _previous_.id);
18
+ if (isPrepending) {
19
+ debouncedUpdate.cancel();
20
+ setPendingUpdate(newList);
21
+ debouncedUpdate(newList);
22
+ return currentList;
23
+ }
24
+ debouncedUpdate.cancel();
25
+ setPendingUpdate(null);
26
+ return newList;
27
+ });
28
+ }, [previous, pendingUpdate, debouncedUpdate]);
29
+ useEffect(function () {
30
+ if (list === previous) {
31
+ return;
32
+ }
33
+ setPrevious(list);
34
+ updateState(list);
35
+ return function () {
23
36
  debouncedUpdate.cancel();
24
37
  };
25
- }, [list, previous, updateState, debouncedUpdate]), current;
38
+ }, [list, previous, updateState, debouncedUpdate]);
39
+ return current;
26
40
  }
27
41
  export { useDebouncePrepend };
28
42
  //# sourceMappingURL=useDebouncePrepend.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["debounce","useCallback","useEffect","useMemo","useState","useDebouncePrepend","list","delay","current","setCurrent","previous","setPrevious","pendingUpdate","setPendingUpdate","debouncedUpdate","newList","updateState","prevCurrent","_newList_","_previous_","currentList","isPrepending","length","id","cancel"],"sources":["../../src/useDebouncePrepend.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,QAAA,QAAgB;AAEnD,SAASC,mBACdC,IAAA,EACAC,KAAA,EACG;EACH,KAAAC,OAAO,EAAAC,UAAS,IAAUL,QAAI,CAAAE,IAAS;IAAI,CAAAI,QACpC,EAAAC,WAAU,IAAWP,QAAI,CAAAE,IAAS;IAAI,CAAAM,aACtC,EAAAC,gBAAe,IAAgBT,QAAI,KAAmB;IAAIU,eAE3D,GAAAX,OAAkB,aACf;MACL,OAAAH,QAAW,WACXe,OAAA;QACCN,UACD,CAAAM,OAEE,GAAAF,gBAAc;MAClB,CAAC,EAAAN,KAAA;IACC,IAEEA,KAAA,CAMA;IAAAS,WAFE,GAAAf,WAAQ,CAAS,UAASc,OAAA;MAarBN,UACR,WAAAQ,WAAA;QACH,IAAAC,SAAA;UAAAC,UAAA;UAAAC,WAAA,GAAAR,aAAA,IAAAK,WAAA;UAAAI,YAAA,GAAAN,OAAA,CAAAO,MAAA,GAAAZ,QAAA,CAAAY,MAAA,MAAAJ,SAAA,GAAAH,OAAA,iBAAAG,SAAA,uBAAAA,SAAA,CAAAK,EAAA,QAAAJ,UAAA,GAAAT,QAAA,iBAAAS,UAAA,uBAAAA,UAAA,CAAAI,EAAA;QACC,OAAAF,YAAU,IAAAP,eAAe,CAAeU,MAAA,IAAAX,gBAAA,CAAAE,OAAA,GAAAD,eAAA,CAAAC,OAAA,GAAAK,WAAA,KAAAN,eAAA,CAAAU,MAAA,IAAAX,gBAAA,QAAAE,OAAA;MAC3C;IAEA,IACEL,QAAI,EAKJE,aAAA,EAMEE,eAAA,CAAuB;EAE3B,OAAIZ,SAAM,aAAU;IAGtB,IAAAI,IAAA,KAAAI,QAAA,E","ignoreList":[]}
1
+ {"version":3,"names":["debounce","useCallback","useEffect","useMemo","useState","useDebouncePrepend","list","delay","current","setCurrent","previous","setPrevious","pendingUpdate","setPendingUpdate","debouncedUpdate","newList","updateState","prevCurrent","_newList_","_previous_","currentList","isPrepending","length","id","cancel"],"sources":["../../src/useDebouncePrepend.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,QAAA,QAAgB;AAEnD,SAASC,mBACdC,IAAA,EACAC,KAAA,EACG;EACH,KAAAC,OAAO,EAAAC,UAAS,IAAUL,QAAI,CAAAE,IAAS;EACvC,KAAAI,QAAO,EAAAC,WAAU,IAAWP,QAAI,CAAAE,IAAS;EACzC,KAAAM,aAAO,EAAAC,gBAAe,IAAgBT,QAAI,KAAmB;EAE7D,IAAAU,eAAM,GAAAX,OAAkB,aAAc;IACpC,OAAOH,QAAA,CAAS,UAACe,OAAe;MAC9BN,UAAA,CAAWM,OAAO;MAClBF,gBAAA,CAAiB,IAAI;IACvB,GAAGN,KAAK;EACV,GAAG,CAEHA,KAAM,CAAc,CAClB;EACE,IAAAS,WAAW,GAACf,WAAA,WAAgBc,OAAA;IAE1BN,UAAM,WAAAQ,WAAc;MAGpB,IAAAC,SAAM,EAAAC,UACJ;MAEF,IAAAC,WAAI,GAAAR,aAAc,IAAAK,WAAA;MAEhB,IAAAI,YAAA,GAAAN,OAAgB,CAAOO,MAAA,GAAAZ,QAAA,CAAAY,MAAA,MAAAJ,SAAA,GAAAH,OAAA,iBAAAG,SAAA,uBAAAA,SAAA,CAAAK,EAAA,QAAAJ,UAAA,GAAAT,QAAA,iBAAAS,UAAA,uBAAAA,UAAA,CAAAI,EAAA;MACvB,IAAAF,YAAA;QACAP,eAAA,CAAAU,MAAgB;QAChBX,gBAAO,CAAAE,OAAA;QACTD,eAAA,CAAAC,OAAA;QAGA,OAAAK,WAAgB;MAChB;MACAN,eAAO,CAAAU,MAAA;MACTX,gBAAC;MACH,OAAAE,OAAA;IACA,CAAC;EACH,IAEAL,QAAU,EACRE,aAAa,EACXE,eAAA,EACF;EAGAZ,SAAA,aAAgB;IAGhB,IAAAI,IAAA,KAAYI,QAAI;MAEhB;IACE;IACFC,WAAA,CAAAL,IAAA;IACFU,WAAU,CAAAV,IAAA;IAEV,OAAO;MACTQ,eAAA,CAAAU,MAAA","ignoreList":[]}