@take-out/hooks 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/useClickOutside.cjs +24 -15
- package/dist/cjs/useClickOutside.native.js +34 -22
- package/dist/cjs/useClickOutside.native.js.map +1 -1
- package/dist/cjs/useDebouncePrepend.cjs +47 -27
- package/dist/cjs/useDebouncePrepend.native.js +48 -32
- package/dist/cjs/useDebouncePrepend.native.js.map +1 -1
- package/dist/cjs/useDeepMemoizedObject.cjs +154 -95
- package/dist/cjs/useDeepMemoizedObject.native.js +177 -111
- package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -1
- package/dist/cjs/useDeepMemoizedObject.test.cjs +269 -199
- package/dist/cjs/useDeepMemoizedObject.test.native.js +265 -202
- package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -1
- package/dist/cjs/useDeferredBoolean.cjs +20 -15
- package/dist/cjs/useDeferredBoolean.native.js +22 -17
- package/dist/cjs/useDeferredBoolean.native.js.map +1 -1
- package/dist/cjs/useEffectOnceGlobally.cjs +24 -12
- package/dist/cjs/useEffectOnceGlobally.native.js +27 -15
- package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -1
- package/dist/cjs/useEvent.cjs +14 -11
- package/dist/cjs/useEvent.native.js +17 -12
- package/dist/cjs/useEvent.native.js.map +1 -1
- package/dist/cjs/useIsMounted.cjs +17 -14
- package/dist/cjs/useIsMounted.native.js +20 -17
- package/dist/cjs/useIsMounted.native.js.map +1 -1
- package/dist/cjs/useLastValue.cjs +13 -11
- package/dist/cjs/useLastValue.native.js +13 -11
- package/dist/cjs/useLastValue.native.js.map +1 -1
- package/dist/cjs/useLastValueIf.cjs +21 -14
- package/dist/cjs/useLastValueIf.native.js +21 -14
- package/dist/cjs/useLastValueIf.native.js.map +1 -1
- package/dist/cjs/useMemoStable.cjs +17 -14
- package/dist/cjs/useMemoStable.native.js +17 -14
- package/dist/cjs/useMemoStable.native.js.map +1 -1
- package/dist/cjs/useMemoizedObjectList.cjs +45 -29
- package/dist/cjs/useMemoizedObjectList.native.js +60 -39
- package/dist/cjs/useMemoizedObjectList.native.js.map +1 -1
- package/dist/cjs/useThrottle.cjs +34 -21
- package/dist/cjs/useThrottle.native.js +41 -27
- package/dist/cjs/useThrottle.native.js.map +1 -1
- package/dist/cjs/useWarnIfDepsChange.cjs +38 -27
- package/dist/cjs/useWarnIfDepsChange.native.js +38 -28
- package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -1
- package/dist/cjs/useWarnIfMemoChangesOften.cjs +24 -15
- package/dist/cjs/useWarnIfMemoChangesOften.native.js +27 -21
- package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -1
- package/dist/esm/useClickOutside.mjs +10 -3
- package/dist/esm/useClickOutside.mjs.map +1 -1
- package/dist/esm/useClickOutside.native.js +20 -10
- package/dist/esm/useClickOutside.native.js.map +1 -1
- package/dist/esm/useDebouncePrepend.mjs +33 -15
- package/dist/esm/useDebouncePrepend.mjs.map +1 -1
- package/dist/esm/useDebouncePrepend.native.js +34 -20
- package/dist/esm/useDebouncePrepend.native.js.map +1 -1
- package/dist/esm/useDeepMemoizedObject.mjs +142 -85
- package/dist/esm/useDeepMemoizedObject.mjs.map +1 -1
- package/dist/esm/useDeepMemoizedObject.native.js +165 -101
- package/dist/esm/useDeepMemoizedObject.native.js.map +1 -1
- package/dist/esm/useDeepMemoizedObject.test.mjs +267 -197
- package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -1
- package/dist/esm/useDeepMemoizedObject.test.native.js +263 -200
- package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -1
- package/dist/esm/useDeferredBoolean.mjs +8 -5
- package/dist/esm/useDeferredBoolean.mjs.map +1 -1
- package/dist/esm/useDeferredBoolean.native.js +8 -5
- package/dist/esm/useDeferredBoolean.native.js.map +1 -1
- package/dist/esm/useEffectOnceGlobally.mjs +12 -2
- package/dist/esm/useEffectOnceGlobally.mjs.map +1 -1
- package/dist/esm/useEffectOnceGlobally.native.js +13 -3
- package/dist/esm/useEffectOnceGlobally.native.js.map +1 -1
- package/dist/esm/useEvent.mjs +2 -1
- package/dist/esm/useEvent.mjs.map +1 -1
- package/dist/esm/useEvent.native.js +5 -2
- package/dist/esm/useEvent.native.js.map +1 -1
- package/dist/esm/useIsMounted.mjs +5 -4
- package/dist/esm/useIsMounted.mjs.map +1 -1
- package/dist/esm/useIsMounted.native.js +5 -4
- package/dist/esm/useIsMounted.native.js.map +1 -1
- package/dist/esm/useLastValue.mjs +1 -1
- package/dist/esm/useLastValue.mjs.map +1 -1
- package/dist/esm/useLastValue.native.js +1 -1
- package/dist/esm/useLastValue.native.js.map +1 -1
- package/dist/esm/useLastValueIf.mjs +9 -4
- package/dist/esm/useLastValueIf.mjs.map +1 -1
- package/dist/esm/useLastValueIf.native.js +9 -4
- package/dist/esm/useLastValueIf.native.js.map +1 -1
- package/dist/esm/useMemoStable.mjs +3 -2
- package/dist/esm/useMemoStable.mjs.map +1 -1
- package/dist/esm/useMemoStable.native.js +3 -2
- package/dist/esm/useMemoStable.native.js.map +1 -1
- package/dist/esm/useMemoizedObjectList.mjs +31 -17
- package/dist/esm/useMemoizedObjectList.mjs.map +1 -1
- package/dist/esm/useMemoizedObjectList.native.js +46 -27
- package/dist/esm/useMemoizedObjectList.native.js.map +1 -1
- package/dist/esm/useThrottle.mjs +20 -9
- package/dist/esm/useThrottle.mjs.map +1 -1
- package/dist/esm/useThrottle.native.js +24 -12
- package/dist/esm/useThrottle.native.js.map +1 -1
- package/dist/esm/useWarnIfDepsChange.mjs +24 -15
- package/dist/esm/useWarnIfDepsChange.mjs.map +1 -1
- package/dist/esm/useWarnIfDepsChange.native.js +24 -16
- package/dist/esm/useWarnIfDepsChange.native.js.map +1 -1
- package/dist/esm/useWarnIfMemoChangesOften.mjs +10 -3
- package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -1
- package/dist/esm/useWarnIfMemoChangesOften.native.js +10 -6
- package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -7,253 +7,316 @@ function testMemoization(initialValue, options) {
|
|
|
7
7
|
return previousValue;
|
|
8
8
|
},
|
|
9
9
|
update(value) {
|
|
10
|
-
previousValue = deepMemoize(value, previousValue, [], options
|
|
10
|
+
previousValue = deepMemoize(value, previousValue, [], options === null || options === void 0 ? void 0 : options.immutableToNestedChanges);
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
describe("useDeepMemoizedObject", function () {
|
|
15
15
|
it("should preserve identity for unchanged primitives", function () {
|
|
16
|
-
var hook = testMemoization(42)
|
|
17
|
-
|
|
18
|
-
hook.update(42)
|
|
19
|
-
|
|
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 () {
|
|
20
22
|
var obj = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
a: 1,
|
|
24
|
+
b: 2
|
|
25
|
+
};
|
|
26
|
+
var hook = testMemoization(obj);
|
|
27
|
+
var firstResult = hook.current;
|
|
26
28
|
hook.update({
|
|
27
29
|
a: 1,
|
|
28
30
|
b: 2
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
hook
|
|
35
|
-
|
|
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 () {
|
|
36
42
|
var initial = {
|
|
37
|
-
|
|
43
|
+
server: {
|
|
44
|
+
id: 1,
|
|
45
|
+
channels: [{
|
|
38
46
|
id: 1,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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: [{
|
|
55
63
|
id: 1,
|
|
56
|
-
|
|
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: [{
|
|
57
89
|
id: 1,
|
|
58
|
-
|
|
90
|
+
text: "hi"
|
|
59
91
|
}, {
|
|
60
92
|
id: 2,
|
|
61
|
-
|
|
93
|
+
text: "hello"
|
|
62
94
|
}, {
|
|
63
95
|
id: 3,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
hook.update(updated);
|
|
69
|
-
var secondResult = hook.current;
|
|
70
|
-
expect(secondResult).not.toBe(firstResult), expect(secondResult.server).not.toBe(firstResult.server), expect(secondResult.server.channels).not.toBe(firstResult.server.channels), expect(secondResult.server.channels[0]).not.toBe(firstResult.server.channels[0]), expect(secondResult.server.channels[1]).toBe(firstResult.server.channels[1]), expect(secondResult.server.channels[2]).toBe(firstResult.server.channels[2]);
|
|
71
|
-
}), it("should handle deep nested changes in arrays", function () {
|
|
72
|
-
var initial = {
|
|
73
|
-
server: {
|
|
74
|
-
channels: [{
|
|
75
|
-
id: 1,
|
|
76
|
-
messages: [{
|
|
77
|
-
id: 1,
|
|
78
|
-
text: "hi"
|
|
96
|
+
text: "world",
|
|
97
|
+
reactions: [{
|
|
98
|
+
emoji: "\u{1F44D}",
|
|
99
|
+
count: 1
|
|
79
100
|
}, {
|
|
80
|
-
|
|
81
|
-
|
|
101
|
+
emoji: "\u2764\uFE0F",
|
|
102
|
+
count: 2
|
|
82
103
|
}, {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
emoji: "\u2764\uFE0F",
|
|
90
|
-
count: 2
|
|
91
|
-
}, {
|
|
92
|
-
emoji: "\u{1F602}",
|
|
93
|
-
count: 3,
|
|
94
|
-
updatedAt: "2024-01-01"
|
|
95
|
-
}, {
|
|
96
|
-
emoji: "\u{1F389}",
|
|
97
|
-
count: 4
|
|
98
|
-
}]
|
|
104
|
+
emoji: "\u{1F602}",
|
|
105
|
+
count: 3,
|
|
106
|
+
updatedAt: "2024-01-01"
|
|
107
|
+
}, {
|
|
108
|
+
emoji: "\u{1F389}",
|
|
109
|
+
count: 4
|
|
99
110
|
}]
|
|
100
111
|
}]
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
updated
|
|
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);
|
|
107
120
|
var secondResult = hook.current;
|
|
108
|
-
expect(secondResult).not.toBe(firstResult)
|
|
109
|
-
|
|
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 () {
|
|
110
136
|
var initial = {
|
|
111
|
-
|
|
137
|
+
server: {
|
|
138
|
+
id: 1,
|
|
139
|
+
channels: [{
|
|
112
140
|
id: 1,
|
|
113
|
-
|
|
141
|
+
messages: [{
|
|
114
142
|
id: 1,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
|
127
162
|
}, {
|
|
128
|
-
|
|
129
|
-
|
|
163
|
+
emoji: "\u2764\uFE0F",
|
|
164
|
+
count: 2
|
|
130
165
|
}, {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
emoji: "\u{1F44D}",
|
|
135
|
-
count: 1
|
|
136
|
-
}, {
|
|
137
|
-
emoji: "\u2764\uFE0F",
|
|
138
|
-
count: 2
|
|
139
|
-
}, {
|
|
140
|
-
emoji: "\u{1F602}",
|
|
141
|
-
count: 3,
|
|
142
|
-
updatedAt: "2024-01-01"
|
|
143
|
-
}]
|
|
166
|
+
emoji: "\u{1F602}",
|
|
167
|
+
count: 3,
|
|
168
|
+
updatedAt: "2024-01-01"
|
|
144
169
|
}]
|
|
145
170
|
}]
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
updated
|
|
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);
|
|
162
189
|
var secondResult = hook.current;
|
|
163
|
-
expect(secondResult).not.toBe(firstResult)
|
|
164
|
-
|
|
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 () {
|
|
165
200
|
var initial = {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
hook.update(updated)
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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 () {
|
|
183
224
|
var nullHook = testMemoization(null);
|
|
184
|
-
expect(nullHook.current).toBe(null)
|
|
225
|
+
expect(nullHook.current).toBe(null);
|
|
226
|
+
nullHook.update(void 0);
|
|
227
|
+
expect(nullHook.current).toBe(void 0);
|
|
228
|
+
nullHook.update({
|
|
185
229
|
a: null,
|
|
186
230
|
b: void 0
|
|
187
231
|
});
|
|
188
232
|
var objResult = nullHook.current;
|
|
189
|
-
expect(objResult.a).toBe(null)
|
|
190
|
-
|
|
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 () {
|
|
191
237
|
var initial = [{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
+
}];
|
|
213
259
|
hook.update(updated);
|
|
214
260
|
var secondResult = hook.current;
|
|
215
|
-
expect(secondResult).not.toBe(firstResult)
|
|
216
|
-
|
|
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 () {
|
|
217
267
|
var initial = {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
268
|
+
app: {
|
|
269
|
+
settings: {
|
|
270
|
+
theme: "dark",
|
|
271
|
+
language: "en",
|
|
272
|
+
nested: {
|
|
273
|
+
deep: {
|
|
274
|
+
value: 1
|
|
226
275
|
}
|
|
227
276
|
}
|
|
228
277
|
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
updated
|
|
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);
|
|
241
292
|
var secondResult = hook.current;
|
|
242
|
-
expect(secondResult).not.toBe(firstResult)
|
|
243
|
-
|
|
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 () {
|
|
244
301
|
var initial = [1, "string", {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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];
|
|
254
311
|
hook.update(updated);
|
|
255
312
|
var secondResult = hook.current;
|
|
256
|
-
expect(secondResult).not.toBe(firstResult)
|
|
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);
|
|
257
320
|
});
|
|
258
321
|
});
|
|
259
322
|
//# sourceMappingURL=useDeepMemoizedObject.test.native.js.map
|
|
@@ -1 +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"],"sources":["../../src/useDeepMemoizedObject.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAErC,SAASC,WAAA,QAAiC;AAE1C,SAASC,gBACPC,YAAA,EACAC,OAAA,EAC4C;EAC5C,IAAIC,aAAA,GAAgBF,YAAA;EAEpB,OAAO;IACL,IAAIG,QAAA,EAAU;MACZ,OAAOD,aAAA;IACT;IACAE,OAAOC,KAAA,EAAU;MACfH,aAAA,GAAgBJ,WAAA,CAAAO,KAAA,EAAAH,aAAA,MAAAD,OAAA,
|
|
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":[]}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { useState, startTransition, useEffect } from "react";
|
|
2
2
|
const useDeferredBoolean = inVal => {
|
|
3
3
|
const [val, setVal] = useState(inVal);
|
|
4
|
-
|
|
5
|
-
val !== inVal
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
if (val !== inVal) {
|
|
6
|
+
startTransition(() => {
|
|
7
|
+
setVal(inVal);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
}, [inVal, val]);
|
|
11
|
+
return val;
|
|
9
12
|
};
|
|
10
13
|
export { useDeferredBoolean };
|
|
11
14
|
//# sourceMappingURL=useDeferredBoolean.mjs.map
|
|
@@ -1 +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;
|
|
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":[]}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { useState, startTransition, useEffect } from "react";
|
|
2
2
|
var useDeferredBoolean = function (inVal) {
|
|
3
3
|
var [val, setVal] = useState(inVal);
|
|
4
|
-
|
|
5
|
-
val !== inVal
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
if (val !== inVal) {
|
|
6
|
+
startTransition(function () {
|
|
7
|
+
setVal(inVal);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
}, [inVal, val]);
|
|
11
|
+
return val;
|
|
9
12
|
};
|
|
10
13
|
export { useDeferredBoolean };
|
|
11
14
|
//# sourceMappingURL=useDeferredBoolean.native.js.map
|
|
@@ -1 +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,IAAAC,kBAAM,YAAAA,CAAsBC,KAA4B;EAC7D,KAAAC,GAAO,EAAAC,MAAK,IAAMN,QAAI,CAAAI,KAAS;EAE/
|
|
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,IAAAC,kBAAM,YAAAA,CAAsBC,KAA4B;EAC7D,KAAAC,GAAO,EAAAC,MAAK,IAAMN,QAAI,CAAAI,KAAS;EAE/BF,SAAA,CAAU,YAAM;IACd,IAAIG,GAAA,KAAQD,KAAA,EAAO;MACjBH,eAAA,CAAgB,YAAM;QACpBK,MAAA,CAAOF,KAAK;MACd,CAAC;IACH;EACF,GAAG,CAEHA,KAAO,EACTC,GAAA,C","ignoreList":[]}
|