@o/hooks 0.16.19

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 (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/cjs/index.cjs +32 -0
  4. package/dist/cjs/index.native.js +35 -0
  5. package/dist/cjs/index.native.js.map +1 -0
  6. package/dist/cjs/useClickOutside.cjs +52 -0
  7. package/dist/cjs/useClickOutside.native.js +63 -0
  8. package/dist/cjs/useClickOutside.native.js.map +1 -0
  9. package/dist/cjs/useDebouncePrepend.cjs +66 -0
  10. package/dist/cjs/useDebouncePrepend.native.js +70 -0
  11. package/dist/cjs/useDebouncePrepend.native.js.map +1 -0
  12. package/dist/cjs/useDeepMemoizedObject.cjs +207 -0
  13. package/dist/cjs/useDeepMemoizedObject.native.js +258 -0
  14. package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -0
  15. package/dist/cjs/useDeepMemoizedObject.test.cjs +321 -0
  16. package/dist/cjs/useDeepMemoizedObject.test.native.js +324 -0
  17. package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -0
  18. package/dist/cjs/useDeferredBoolean.cjs +39 -0
  19. package/dist/cjs/useDeferredBoolean.native.js +42 -0
  20. package/dist/cjs/useDeferredBoolean.native.js.map +1 -0
  21. package/dist/cjs/useEffectOnceGlobally.cjs +45 -0
  22. package/dist/cjs/useEffectOnceGlobally.native.js +50 -0
  23. package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -0
  24. package/dist/cjs/useEvent.cjs +33 -0
  25. package/dist/cjs/useEvent.native.js +41 -0
  26. package/dist/cjs/useEvent.native.js.map +1 -0
  27. package/dist/cjs/useIsMounted.cjs +35 -0
  28. package/dist/cjs/useIsMounted.native.js +38 -0
  29. package/dist/cjs/useIsMounted.native.js.map +1 -0
  30. package/dist/cjs/useLastValue.cjs +31 -0
  31. package/dist/cjs/useLastValue.native.js +34 -0
  32. package/dist/cjs/useLastValue.native.js.map +1 -0
  33. package/dist/cjs/useLastValueIf.cjs +38 -0
  34. package/dist/cjs/useLastValueIf.native.js +42 -0
  35. package/dist/cjs/useLastValueIf.native.js.map +1 -0
  36. package/dist/cjs/useMemoStable.cjs +35 -0
  37. package/dist/cjs/useMemoStable.native.js +39 -0
  38. package/dist/cjs/useMemoStable.native.js.map +1 -0
  39. package/dist/cjs/useMemoizedObjectList.cjs +64 -0
  40. package/dist/cjs/useMemoizedObjectList.native.js +86 -0
  41. package/dist/cjs/useMemoizedObjectList.native.js.map +1 -0
  42. package/dist/cjs/useThrottle.cjs +52 -0
  43. package/dist/cjs/useThrottle.native.js +59 -0
  44. package/dist/cjs/useThrottle.native.js.map +1 -0
  45. package/dist/cjs/useWarnIfDepsChange.cjs +65 -0
  46. package/dist/cjs/useWarnIfDepsChange.native.js +68 -0
  47. package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -0
  48. package/dist/cjs/useWarnIfMemoChangesOften.cjs +43 -0
  49. package/dist/cjs/useWarnIfMemoChangesOften.native.js +48 -0
  50. package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -0
  51. package/dist/esm/index.js +14 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/index.mjs +14 -0
  54. package/dist/esm/index.mjs.map +1 -0
  55. package/dist/esm/index.native.js +14 -0
  56. package/dist/esm/index.native.js.map +1 -0
  57. package/dist/esm/useClickOutside.mjs +27 -0
  58. package/dist/esm/useClickOutside.mjs.map +1 -0
  59. package/dist/esm/useClickOutside.native.js +35 -0
  60. package/dist/esm/useClickOutside.native.js.map +1 -0
  61. package/dist/esm/useDebouncePrepend.mjs +41 -0
  62. package/dist/esm/useDebouncePrepend.mjs.map +1 -0
  63. package/dist/esm/useDebouncePrepend.native.js +42 -0
  64. package/dist/esm/useDebouncePrepend.native.js.map +1 -0
  65. package/dist/esm/useDeepMemoizedObject.mjs +180 -0
  66. package/dist/esm/useDeepMemoizedObject.mjs.map +1 -0
  67. package/dist/esm/useDeepMemoizedObject.native.js +228 -0
  68. package/dist/esm/useDeepMemoizedObject.native.js.map +1 -0
  69. package/dist/esm/useDeepMemoizedObject.test.mjs +322 -0
  70. package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -0
  71. package/dist/esm/useDeepMemoizedObject.test.native.js +322 -0
  72. package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -0
  73. package/dist/esm/useDeferredBoolean.mjs +14 -0
  74. package/dist/esm/useDeferredBoolean.mjs.map +1 -0
  75. package/dist/esm/useDeferredBoolean.native.js +14 -0
  76. package/dist/esm/useDeferredBoolean.native.js.map +1 -0
  77. package/dist/esm/useEffectOnceGlobally.mjs +20 -0
  78. package/dist/esm/useEffectOnceGlobally.mjs.map +1 -0
  79. package/dist/esm/useEffectOnceGlobally.native.js +22 -0
  80. package/dist/esm/useEffectOnceGlobally.native.js.map +1 -0
  81. package/dist/esm/useEvent.mjs +8 -0
  82. package/dist/esm/useEvent.mjs.map +1 -0
  83. package/dist/esm/useEvent.native.js +13 -0
  84. package/dist/esm/useEvent.native.js.map +1 -0
  85. package/dist/esm/useIsMounted.mjs +10 -0
  86. package/dist/esm/useIsMounted.mjs.map +1 -0
  87. package/dist/esm/useIsMounted.native.js +10 -0
  88. package/dist/esm/useIsMounted.native.js.map +1 -0
  89. package/dist/esm/useLastValue.mjs +6 -0
  90. package/dist/esm/useLastValue.mjs.map +1 -0
  91. package/dist/esm/useLastValue.native.js +6 -0
  92. package/dist/esm/useLastValue.native.js.map +1 -0
  93. package/dist/esm/useLastValueIf.mjs +13 -0
  94. package/dist/esm/useLastValueIf.mjs.map +1 -0
  95. package/dist/esm/useLastValueIf.native.js +14 -0
  96. package/dist/esm/useLastValueIf.native.js.map +1 -0
  97. package/dist/esm/useMemoStable.mjs +10 -0
  98. package/dist/esm/useMemoStable.mjs.map +1 -0
  99. package/dist/esm/useMemoStable.native.js +11 -0
  100. package/dist/esm/useMemoStable.native.js.map +1 -0
  101. package/dist/esm/useMemoizedObjectList.mjs +39 -0
  102. package/dist/esm/useMemoizedObjectList.mjs.map +1 -0
  103. package/dist/esm/useMemoizedObjectList.native.js +58 -0
  104. package/dist/esm/useMemoizedObjectList.native.js.map +1 -0
  105. package/dist/esm/useThrottle.mjs +27 -0
  106. package/dist/esm/useThrottle.mjs.map +1 -0
  107. package/dist/esm/useThrottle.native.js +31 -0
  108. package/dist/esm/useThrottle.native.js.map +1 -0
  109. package/dist/esm/useWarnIfDepsChange.mjs +40 -0
  110. package/dist/esm/useWarnIfDepsChange.mjs.map +1 -0
  111. package/dist/esm/useWarnIfDepsChange.native.js +40 -0
  112. package/dist/esm/useWarnIfDepsChange.native.js.map +1 -0
  113. package/dist/esm/useWarnIfMemoChangesOften.mjs +18 -0
  114. package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -0
  115. package/dist/esm/useWarnIfMemoChangesOften.native.js +20 -0
  116. package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -0
  117. package/package.json +59 -0
  118. package/src/index.ts +13 -0
  119. package/src/useClickOutside.ts +34 -0
  120. package/src/useDebouncePrepend.ts +63 -0
  121. package/src/useDeepMemoizedObject.test.ts +344 -0
  122. package/src/useDeepMemoizedObject.ts +231 -0
  123. package/src/useDeferredBoolean.tsx +15 -0
  124. package/src/useEffectOnceGlobally.ts +41 -0
  125. package/src/useEvent.ts +7 -0
  126. package/src/useIsMounted.ts +11 -0
  127. package/src/useLastValue.ts +5 -0
  128. package/src/useLastValueIf.ts +15 -0
  129. package/src/useMemoStable.ts +25 -0
  130. package/src/useMemoizedObjectList.ts +74 -0
  131. package/src/useThrottle.ts +36 -0
  132. package/src/useWarnIfDepsChange.ts +61 -0
  133. package/src/useWarnIfMemoChangesOften.ts +24 -0
@@ -0,0 +1,322 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { deepMemoize } from "./useDeepMemoizedObject.native.js";
3
+ function testMemoization(initialValue, options) {
4
+ var previousValue = initialValue;
5
+ return {
6
+ get current() {
7
+ return previousValue;
8
+ },
9
+ update(value) {
10
+ previousValue = deepMemoize(value, previousValue, [], options === null || options === void 0 ? void 0 : options.immutableToNestedChanges);
11
+ }
12
+ };
13
+ }
14
+ describe("useDeepMemoizedObject", function () {
15
+ it("should preserve identity for unchanged primitives", function () {
16
+ var hook = testMemoization(42);
17
+ var firstResult = hook.current;
18
+ hook.update(42);
19
+ expect(hook.current).toBe(firstResult);
20
+ });
21
+ it("should preserve identity for unchanged objects", function () {
22
+ var obj = {
23
+ a: 1,
24
+ b: 2
25
+ };
26
+ var hook = testMemoization(obj);
27
+ var firstResult = hook.current;
28
+ hook.update({
29
+ a: 1,
30
+ b: 2
31
+ });
32
+ expect(hook.current).toBe(firstResult);
33
+ });
34
+ it("should preserve identity for unchanged arrays", function () {
35
+ var arr = [1, 2, 3];
36
+ var hook = testMemoization(arr);
37
+ var firstResult = hook.current;
38
+ hook.update([1, 2, 3]);
39
+ expect(hook.current).toBe(firstResult);
40
+ });
41
+ it("should handle nested object changes correctly", function () {
42
+ var initial = {
43
+ server: {
44
+ id: 1,
45
+ channels: [{
46
+ id: 1,
47
+ name: "general"
48
+ }, {
49
+ id: 2,
50
+ name: "random"
51
+ }, {
52
+ id: 3,
53
+ name: "tech"
54
+ }]
55
+ }
56
+ };
57
+ var hook = testMemoization(initial);
58
+ var firstResult = hook.current;
59
+ var updated = {
60
+ server: {
61
+ id: 1,
62
+ channels: [{
63
+ id: 1,
64
+ name: "general-updated"
65
+ }, {
66
+ id: 2,
67
+ name: "random"
68
+ }, {
69
+ id: 3,
70
+ name: "tech"
71
+ }]
72
+ }
73
+ };
74
+ hook.update(updated);
75
+ var secondResult = hook.current;
76
+ expect(secondResult).not.toBe(firstResult);
77
+ expect(secondResult.server).not.toBe(firstResult.server);
78
+ expect(secondResult.server.channels).not.toBe(firstResult.server.channels);
79
+ expect(secondResult.server.channels[0]).not.toBe(firstResult.server.channels[0]);
80
+ expect(secondResult.server.channels[1]).toBe(firstResult.server.channels[1]);
81
+ expect(secondResult.server.channels[2]).toBe(firstResult.server.channels[2]);
82
+ });
83
+ it("should handle deep nested changes in arrays", function () {
84
+ var initial = {
85
+ server: {
86
+ channels: [{
87
+ id: 1,
88
+ messages: [{
89
+ id: 1,
90
+ text: "hi"
91
+ }, {
92
+ id: 2,
93
+ text: "hello"
94
+ }, {
95
+ id: 3,
96
+ text: "world",
97
+ reactions: [{
98
+ emoji: "\u{1F44D}",
99
+ count: 1
100
+ }, {
101
+ emoji: "\u2764\uFE0F",
102
+ count: 2
103
+ }, {
104
+ emoji: "\u{1F602}",
105
+ count: 3,
106
+ updatedAt: "2024-01-01"
107
+ }, {
108
+ emoji: "\u{1F389}",
109
+ count: 4
110
+ }]
111
+ }]
112
+ }]
113
+ }
114
+ };
115
+ var hook = testMemoization(initial);
116
+ var firstResult = hook.current;
117
+ var updated = JSON.parse(JSON.stringify(initial));
118
+ updated.server.channels[0].messages[2].reactions[2].updatedAt = "2024-01-02";
119
+ hook.update(updated);
120
+ var secondResult = hook.current;
121
+ expect(secondResult).not.toBe(firstResult);
122
+ expect(secondResult.server).not.toBe(firstResult.server);
123
+ expect(secondResult.server.channels).not.toBe(firstResult.server.channels);
124
+ expect(secondResult.server.channels[0]).not.toBe(firstResult.server.channels[0]);
125
+ expect(secondResult.server.channels[0].messages).not.toBe(firstResult.server.channels[0].messages);
126
+ expect(secondResult.server.channels[0].messages[0]).toBe(firstResult.server.channels[0].messages[0]);
127
+ expect(secondResult.server.channels[0].messages[1]).toBe(firstResult.server.channels[0].messages[1]);
128
+ expect(secondResult.server.channels[0].messages[2]).not.toBe(firstResult.server.channels[0].messages[2]);
129
+ expect(secondResult.server.channels[0].messages[2].reactions).not.toBe(firstResult.server.channels[0].messages[2].reactions);
130
+ expect(secondResult.server.channels[0].messages[2].reactions[0]).toBe(firstResult.server.channels[0].messages[2].reactions[0]);
131
+ expect(secondResult.server.channels[0].messages[2].reactions[1]).toBe(firstResult.server.channels[0].messages[2].reactions[1]);
132
+ expect(secondResult.server.channels[0].messages[2].reactions[2]).not.toBe(firstResult.server.channels[0].messages[2].reactions[2]);
133
+ expect(secondResult.server.channels[0].messages[2].reactions[3]).toBe(firstResult.server.channels[0].messages[2].reactions[3]);
134
+ });
135
+ it("should respect immutableToNestedChanges option", function () {
136
+ var initial = {
137
+ server: {
138
+ id: 1,
139
+ channels: [{
140
+ id: 1,
141
+ messages: [{
142
+ id: 1,
143
+ text: "hi"
144
+ }, {
145
+ id: 2,
146
+ text: "hello"
147
+ }, {
148
+ id: 3,
149
+ text: "world"
150
+ }, {
151
+ id: 4,
152
+ text: "foo"
153
+ }, {
154
+ id: 5,
155
+ text: "bar"
156
+ }, {
157
+ id: 6,
158
+ text: "baz",
159
+ reactions: [{
160
+ emoji: "\u{1F44D}",
161
+ count: 1
162
+ }, {
163
+ emoji: "\u2764\uFE0F",
164
+ count: 2
165
+ }, {
166
+ emoji: "\u{1F602}",
167
+ count: 3,
168
+ updatedAt: "2024-01-01"
169
+ }]
170
+ }]
171
+ }]
172
+ }
173
+ };
174
+ var hook = testMemoization(initial, {
175
+ immutableToNestedChanges: {
176
+ server: true,
177
+ "server.channels.0": true
178
+ }
179
+ });
180
+ var firstResult = hook.current;
181
+ var originalChannels = firstResult.server.channels;
182
+ var originalChannel0 = firstResult.server.channels[0];
183
+ var originalMessages = firstResult.server.channels[0].messages;
184
+ var originalMessage5 = firstResult.server.channels[0].messages[5];
185
+ var originalReactions = firstResult.server.channels[0].messages[5].reactions;
186
+ var updated = JSON.parse(JSON.stringify(initial));
187
+ updated.server.channels[0].messages[5].reactions[2].updatedAt = "2024-01-02";
188
+ hook.update(updated);
189
+ var secondResult = hook.current;
190
+ expect(secondResult).not.toBe(firstResult);
191
+ expect(secondResult.server).toBe(firstResult.server);
192
+ expect(secondResult.server.channels).not.toBe(originalChannels);
193
+ expect(secondResult.server.channels[0]).toBe(originalChannel0);
194
+ expect(secondResult.server.channels[0].messages).not.toBe(originalMessages);
195
+ expect(secondResult.server.channels[0].messages[5]).not.toBe(originalMessage5);
196
+ expect(secondResult.server.channels[0].messages[5].reactions).not.toBe(originalReactions);
197
+ expect(secondResult.server.channels[0].messages[5].reactions[2].updatedAt).toBe("2024-01-02");
198
+ });
199
+ it("should handle adding new properties to objects", function () {
200
+ var initial = {
201
+ a: 1,
202
+ b: 2
203
+ };
204
+ var hook = testMemoization(initial);
205
+ var firstResult = hook.current;
206
+ var updated = {
207
+ a: 1,
208
+ b: 2,
209
+ c: 3
210
+ };
211
+ hook.update(updated);
212
+ expect(hook.current).not.toBe(firstResult);
213
+ expect(hook.current).toEqual(updated);
214
+ });
215
+ it("should handle array length changes", function () {
216
+ var initial = [1, 2, 3];
217
+ var hook = testMemoization(initial);
218
+ var firstResult = hook.current;
219
+ hook.update([1, 2, 3, 4]);
220
+ expect(hook.current).not.toBe(firstResult);
221
+ expect(hook.current).toEqual([1, 2, 3, 4]);
222
+ });
223
+ it("should handle null and undefined values", function () {
224
+ var nullHook = testMemoization(null);
225
+ expect(nullHook.current).toBe(null);
226
+ nullHook.update(void 0);
227
+ expect(nullHook.current).toBe(void 0);
228
+ nullHook.update({
229
+ a: null,
230
+ b: void 0
231
+ });
232
+ var objResult = nullHook.current;
233
+ expect(objResult.a).toBe(null);
234
+ expect(objResult.b).toBe(void 0);
235
+ });
236
+ it("should preserve array items when only one changes", function () {
237
+ var initial = [{
238
+ id: 1,
239
+ name: "Alice"
240
+ }, {
241
+ id: 2,
242
+ name: "Bob"
243
+ }, {
244
+ id: 3,
245
+ name: "Charlie"
246
+ }];
247
+ var hook = testMemoization(initial);
248
+ var firstResult = hook.current;
249
+ var updated = [{
250
+ id: 1,
251
+ name: "Alice"
252
+ }, {
253
+ id: 2,
254
+ name: "Bobby"
255
+ }, {
256
+ id: 3,
257
+ name: "Charlie"
258
+ }];
259
+ hook.update(updated);
260
+ var secondResult = hook.current;
261
+ expect(secondResult).not.toBe(firstResult);
262
+ expect(secondResult[0]).toBe(firstResult[0]);
263
+ expect(secondResult[1]).not.toBe(firstResult[1]);
264
+ expect(secondResult[2]).toBe(firstResult[2]);
265
+ });
266
+ it("should handle complex immutableToNestedChanges patterns", function () {
267
+ var initial = {
268
+ app: {
269
+ settings: {
270
+ theme: "dark",
271
+ language: "en",
272
+ nested: {
273
+ deep: {
274
+ value: 1
275
+ }
276
+ }
277
+ }
278
+ }
279
+ };
280
+ var hook = testMemoization(initial, {
281
+ immutableToNestedChanges: {
282
+ "app.settings": true
283
+ }
284
+ });
285
+ var firstResult = hook.current;
286
+ var originalSettings = firstResult.app.settings;
287
+ var originalNested = firstResult.app.settings.nested;
288
+ var originalDeep = firstResult.app.settings.nested.deep;
289
+ var updated = JSON.parse(JSON.stringify(initial));
290
+ updated.app.settings.nested.deep.value = 2;
291
+ hook.update(updated);
292
+ var secondResult = hook.current;
293
+ expect(secondResult).not.toBe(firstResult);
294
+ expect(secondResult.app).not.toBe(firstResult.app);
295
+ expect(secondResult.app.settings).toBe(originalSettings);
296
+ expect(secondResult.app.settings.nested).toBe(originalNested);
297
+ expect(secondResult.app.settings.nested.deep).toBe(originalDeep);
298
+ expect(secondResult.app.settings.nested.deep.value).toBe(2);
299
+ });
300
+ it("should handle mixed arrays with objects and primitives", function () {
301
+ var initial = [1, "string", {
302
+ id: 1,
303
+ name: "object"
304
+ }, [1, 2, 3], null, void 0];
305
+ var hook = testMemoization(initial);
306
+ var firstResult = hook.current;
307
+ var updated = [1, "string", {
308
+ id: 1,
309
+ name: "updated"
310
+ }, [1, 2, 3], null, void 0];
311
+ hook.update(updated);
312
+ var secondResult = hook.current;
313
+ expect(secondResult).not.toBe(firstResult);
314
+ expect(secondResult[0]).toBe(1);
315
+ expect(secondResult[1]).toBe("string");
316
+ expect(secondResult[2]).not.toBe(firstResult[2]);
317
+ expect(secondResult[3]).toBe(firstResult[3]);
318
+ expect(secondResult[4]).toBe(null);
319
+ expect(secondResult[5]).toBe(void 0);
320
+ });
321
+ });
322
+ //# sourceMappingURL=useDeepMemoizedObject.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","deepMemoize","testMemoization","initialValue","options","previousValue","current","update","value","immutableToNestedChanges","hook","firstResult","toBe","obj","a","b","arr","initial","server","id","channels","name","updated","secondResult","not","messages","text","reactions","emoji","count","updatedAt","JSON","parse","stringify","originalChannels","originalChannel0","originalMessages","originalMessage5","originalReactions","c","toEqual","nullHook","objResult"],"sources":["../../src/useDeepMemoizedObject.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { useState, startTransition, useEffect } from "react";
2
+ const useDeferredBoolean = inVal => {
3
+ const [val, setVal] = useState(inVal);
4
+ useEffect(() => {
5
+ if (val !== inVal) {
6
+ startTransition(() => {
7
+ setVal(inVal);
8
+ });
9
+ }
10
+ }, [inVal, val]);
11
+ return val;
12
+ };
13
+ export { useDeferredBoolean };
14
+ //# sourceMappingURL=useDeferredBoolean.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","startTransition","useEffect","useDeferredBoolean","inVal","val","setVal"],"sources":["../../src/useDeferredBoolean.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,eAAA,EAAiBC,SAAA,QAAiB;AAE9C,MAAMC,kBAAA,GAAsBC,KAAA,IAA4B;EAC7D,MAAM,CAACC,GAAA,EAAKC,MAAM,IAAIN,QAAA,CAASI,KAAK;EAEpCF,SAAA,CAAU,MAAM;IACd,IAAIG,GAAA,KAAQD,KAAA,EAAO;MACjBH,eAAA,CAAgB,MAAM;QACpBK,MAAA,CAAOF,KAAK;MACd,CAAC;IACH;EACF,GAAG,CAACA,KAAA,EAAOC,GAAG,CAAC;EAEf,OAAOA,GAAA;AACT","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { useState, startTransition, useEffect } from "react";
2
+ var useDeferredBoolean = function useDeferredBoolean2(inVal) {
3
+ var [val, setVal] = useState(inVal);
4
+ useEffect(function () {
5
+ if (val !== inVal) {
6
+ startTransition(function () {
7
+ setVal(inVal);
8
+ });
9
+ }
10
+ }, [inVal, val]);
11
+ return val;
12
+ };
13
+ export { useDeferredBoolean };
14
+ //# sourceMappingURL=useDeferredBoolean.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","startTransition","useEffect","useDeferredBoolean","useDeferredBoolean2","inVal","val","setVal"],"sources":["../../src/useDeferredBoolean.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,eAAA,EAAiBC,SAAA,QAAiB;AAE9C,IAAAC,kBAAM,YAAsBC,mBAA4BA,CAAAC,KAAA;EAC7D,KAAAC,GAAO,EAAAC,MAAK,IAAMP,QAAI,CAAAK,KAAS;EAE/BH,SAAA,CAAU,YAAM;IACd,IAAII,GAAA,KAAQD,KAAA,EAAO;MACjBJ,eAAA,CAAgB,YAAM;QACpBM,MAAA,CAAOF,KAAK;MACd,CAAC;IACH;EACF,GAAG,CAEHA,KAAO,EACTC,GAAA,C","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import { useEffect } from "react";
2
+ const executedKeys = /* @__PURE__ */new Set();
3
+ function useEffectOnceGlobally(key, callback) {
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
+ useEffect(() => {
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
+ }
17
+ }, [keyString, callback, key]);
18
+ }
19
+ export { useEffectOnceGlobally };
20
+ //# sourceMappingURL=useEffectOnceGlobally.mjs.map
@@ -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,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":[]}
@@ -0,0 +1,22 @@
1
+ import { useEffect } from "react";
2
+ var executedKeys = /* @__PURE__ */new Set();
3
+ function useEffectOnceGlobally(key, callback) {
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
+ return item.id;
6
+ }).sort().join("") : key.id;
7
+ useEffect(function () {
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
+ }
19
+ }, [keyString, callback, key]);
20
+ }
21
+ export { useEffectOnceGlobally };
22
+ //# sourceMappingURL=useEffectOnceGlobally.native.js.map
@@ -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,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":[]}
@@ -0,0 +1,8 @@
1
+ import { useCallback, useRef } from "react";
2
+ function useEvent(fn) {
3
+ const ref = useRef(fn);
4
+ ref.current = fn;
5
+ return useCallback((...args) => ref.current(...args), []);
6
+ }
7
+ export { useEvent };
8
+ //# sourceMappingURL=useEvent.mjs.map
@@ -0,0 +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;EACrBC,GAAA,CAAIC,OAAA,GAAUF,EAAA;EACd,OAAOH,WAAA,CAAY,IAAIM,IAAA,KAAwBF,GAAA,CAAIC,OAAA,CAAQ,GAAGC,IAAI,GAAG,EAAE;AACzE","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { useCallback, useRef } from "react";
2
+ function useEvent(fn) {
3
+ var ref = useRef(fn);
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
+ }
9
+ return ref.current(...args);
10
+ }, []);
11
+ }
12
+ export { useEvent };
13
+ //# sourceMappingURL=useEvent.native.js.map
@@ -0,0 +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;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":[]}
@@ -0,0 +1,10 @@
1
+ import { useEffect, useState } from "react";
2
+ const useIsMounted = () => {
3
+ const [state, setState] = useState(false);
4
+ useEffect(() => {
5
+ setState(true);
6
+ }, []);
7
+ return state;
8
+ };
9
+ export { useIsMounted };
10
+ //# sourceMappingURL=useIsMounted.mjs.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,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":[]}
@@ -0,0 +1,10 @@
1
+ import { useEffect, useState } from "react";
2
+ var useIsMounted = function useIsMounted2() {
3
+ var [state, setState] = useState(false);
4
+ useEffect(function () {
5
+ setState(true);
6
+ }, []);
7
+ return state;
8
+ };
9
+ export { useIsMounted };
10
+ //# sourceMappingURL=useIsMounted.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","useIsMounted","useIsMounted2","state","setState"],"sources":["../../src/useIsMounted.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,QAAgB;AAE7B,IAAAC,YAAM,YAAqBC,cAAA;EAChC,KAAAC,KAAO,EAAAC,QAAO,IAAQJ,QAAI,MAAS;EAEnCD,SAAA,CAAU,YAAM;IACdK,QAAA,CAAS,IAAI;EACf,GAAG,EAAE;EAEL,OAAOD,KAAA;AACT","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { useLastValueIf } from "./useLastValueIf.mjs";
2
+ function useLastValue(value) {
3
+ return useLastValueIf(value, true);
4
+ }
5
+ export { useLastValue };
6
+ //# sourceMappingURL=useLastValue.mjs.map
@@ -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,IAAI;AACnC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { useLastValueIf } from "./useLastValueIf.native.js";
2
+ function useLastValue(value) {
3
+ return useLastValueIf(value, true);
4
+ }
5
+ export { useLastValue };
6
+ //# sourceMappingURL=useLastValue.native.js.map
@@ -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,IAAI;AACnC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { useRef } from "react";
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];
11
+ }
12
+ export { useLastValueIf };
13
+ //# 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,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":[]}
@@ -0,0 +1,14 @@
1
+ import { useRef } from "react";
2
+ function useLastValueIf(value) {
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];
12
+ }
13
+ export { useLastValueIf };
14
+ //# 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,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":[]}
@@ -0,0 +1,10 @@
1
+ import { useMemo } from "react";
2
+ import { useWarnIfDepsChange } from "./useWarnIfDepsChange.mjs";
3
+ function useMemoStable(getValue, deps, options = {
4
+ name: `(untitled)`
5
+ }) {
6
+ useWarnIfDepsChange(deps, options);
7
+ return useMemo(getValue, deps);
8
+ }
9
+ export { useMemoStable };
10
+ //# 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;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":[]}
@@ -0,0 +1,11 @@
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
+ useWarnIfDepsChange(deps, options);
8
+ return useMemo(getValue, deps);
9
+ }
10
+ export { useMemoStable };
11
+ //# 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;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":[]}
@@ -0,0 +1,39 @@
1
+ import { isEqualDeepLite } from "@o/helpers";
2
+ import { useEffect, useMemo, useRef } from "react";
3
+ function useMemoizedObjectList(list, identityKey) {
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);
24
+ }
25
+ }
26
+ if (didFindChange) {
27
+ res = next;
28
+ } else {
29
+ res = memoizedList.current;
30
+ }
31
+ return res;
32
+ }, [identityKey, list]);
33
+ useEffect(() => {
34
+ memoizedList.current = val;
35
+ }, [val]);
36
+ return val;
37
+ }
38
+ export { useMemoizedObjectList };
39
+ //# sourceMappingURL=useMemoizedObjectList.mjs.map
@@ -0,0 +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;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":[]}