@tamagui/is-equal-shallow 2.0.0-rc.4 → 2.0.0-rc.40
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 +35 -16
- package/dist/cjs/index.native.js +35 -16
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +31 -19
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +23 -6
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +23 -6
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +5 -8
- package/types/index.d.ts.map +2 -2
- package/dist/cjs/index.js +0 -43
- package/dist/cjs/index.js.map +0 -6
package/dist/cjs/index.cjs
CHANGED
|
@@ -3,20 +3,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
17
|
-
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
18
20
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
-
value:
|
|
21
|
+
value: true
|
|
20
22
|
}), mod);
|
|
21
23
|
var index_exports = {};
|
|
22
24
|
__export(index_exports, {
|
|
@@ -29,19 +31,36 @@ var import_react = require("react");
|
|
|
29
31
|
function useCreateShallowSetState(setter, debug) {
|
|
30
32
|
return (0, import_react.useCallback)(stateOrGetState => {
|
|
31
33
|
setter(prev => {
|
|
32
|
-
const next = typeof stateOrGetState
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
const next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
35
|
+
const update = mergeIfNotShallowEqual(prev, next);
|
|
36
|
+
if (process.env.NODE_ENV === "development") {
|
|
37
|
+
if (debug && update !== prev) {
|
|
38
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
39
|
+
console.info(`previously`, prev);
|
|
40
|
+
console.trace();
|
|
41
|
+
console.groupEnd();
|
|
42
|
+
if (debug === "break") {}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return update;
|
|
35
46
|
});
|
|
36
47
|
}, [setter, debug]);
|
|
37
48
|
}
|
|
38
49
|
function mergeIfNotShallowEqual(prev, next) {
|
|
39
|
-
|
|
50
|
+
if (!prev || !next || isEqualShallow(prev, next)) {
|
|
51
|
+
if (!prev) return next;
|
|
52
|
+
return prev;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
40
55
|
...prev,
|
|
41
56
|
...next
|
|
42
57
|
};
|
|
43
58
|
}
|
|
44
59
|
function isEqualShallow(prev, next) {
|
|
45
|
-
for (const key in next)
|
|
46
|
-
|
|
60
|
+
for (const key in next) {
|
|
61
|
+
if (prev[key] !== next[key]) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
47
66
|
}
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -5,20 +5,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value:
|
|
23
|
+
value: true
|
|
22
24
|
}), mod);
|
|
23
25
|
var index_exports = {};
|
|
24
26
|
__export(index_exports, {
|
|
@@ -31,20 +33,37 @@ var import_react = require("react");
|
|
|
31
33
|
function useCreateShallowSetState(setter, debug) {
|
|
32
34
|
return (0, import_react.useCallback)(function (stateOrGetState) {
|
|
33
35
|
setter(function (prev) {
|
|
34
|
-
var next = typeof stateOrGetState
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
var next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
37
|
+
var update = mergeIfNotShallowEqual(prev, next);
|
|
38
|
+
if (process.env.NODE_ENV === "development") {
|
|
39
|
+
if (debug && update !== prev) {
|
|
40
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
41
|
+
console.info(`previously`, prev);
|
|
42
|
+
console.trace();
|
|
43
|
+
console.groupEnd();
|
|
44
|
+
if (debug === "break") {}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return update;
|
|
37
48
|
});
|
|
38
49
|
}, [setter, debug]);
|
|
39
50
|
}
|
|
40
51
|
function mergeIfNotShallowEqual(prev, next) {
|
|
41
|
-
|
|
52
|
+
if (!prev || !next || isEqualShallow(prev, next)) {
|
|
53
|
+
if (!prev) return next;
|
|
54
|
+
return prev;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
42
57
|
...prev,
|
|
43
58
|
...next
|
|
44
59
|
};
|
|
45
60
|
}
|
|
46
61
|
function isEqualShallow(prev, next) {
|
|
47
|
-
for (var key in next)
|
|
48
|
-
|
|
62
|
+
for (var key in next) {
|
|
63
|
+
if (prev[key] !== next[key]) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
49
68
|
}
|
|
50
69
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","isEqualShallow","mergeIfNotShallowEqual","useCreateShallowSetState","module","exports","import_react","require","setter","debug","useCallback","stateOrGetState","prev","next","update","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","isEqualShallow","mergeIfNotShallowEqual","useCreateShallowSetState","module","exports","import_react","require","setter","debug","useCallback","stateOrGetState","prev","next","update","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAX,YAA4B,CAAAK,aAAA;AAMrB,IAAAO,YAAS,GAAAC,OAAA,QACd;AAIA,SAAAJ,wBAAOA,CAAAK,MAAA,EAAAC,KAAA;EAAA,OACJ,IAAAH,YAAoB,CAAAI,WAAA,YAAAC,eAAA;IACnBH,MAAA,WAAQI,IAAS;MACf,IAAAC,IAAM,UACJF,eAAO,eAAoB,GAAAA,eAAa,CAAAC,IAAgB,IAAID,eAAI;MAClE,IAAAG,MAAM,GAAAZ,sBAAS,CAAAU,IAAuB,EAAAC,IAAM;MAE5C,IAAAE,OAAI,CAAAC,GAAQ,CAAAC,QAAI,kBAAa;QAC3B,IAAAR,KAAI,IAAAK,MAAS,KAAAF,IAAW;UACtBM,OAAA,CAAAC,cAAQ,yBAAe,MAA0B,EAAAL,MAAM;UACvDI,OAAA,CAAAE,IAAQ,aAAK,EAAAR,IAAc;UAC3BM,OAAA,CAAAG,KAAQ;UACRH,OAAA,CAAAI,QAAQ;UACR,IAAAb,KAAI,YAAU,GAAS;QAEvB;MACF;MAEF,OAAAK,MAAO;IAAA,EACT;EAAC,GACH,CACAN,MAAC,EACHC,KAAA,CACF;AAEO;AAIL,SAAKP,sBAAiBA,CAAAU,IAAA,EAAAC,IAAe;EACnC,KAAAD,IAAK,IAAM,CAAAC,IAAA,IAAOZ,cAAA,CAAAW,IAAA,EAAAC,IAAA;IAClB,KAAAD,IAAO,SAAAC,IAAA;IACT,OAAAD,IAAA;EACA;EACF;IAEO,GAAAA,IAAS;IAId,GAAAC;EACE;AACE;AAAO,SACTZ,eAAAW,IAAA,EAAAC,IAAA;EACF,SAAAU,GAAA,IAAAV,IAAA;IACA,IAAAD,IAAO,CAAAW,GAAA,MAAAV,IAAA,CAAAU,GAAA;MACT","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
function useCreateShallowSetState(setter, debug) {
|
|
3
|
-
return useCallback(
|
|
4
|
-
(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
return useCallback(stateOrGetState => {
|
|
4
|
+
setter(prev => {
|
|
5
|
+
const next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
6
|
+
const update = mergeIfNotShallowEqual(prev, next);
|
|
7
|
+
if (process.env.NODE_ENV === "development") {
|
|
8
|
+
if (debug && update !== prev) {
|
|
9
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
10
|
+
console.info(`previously`, prev);
|
|
11
|
+
console.trace();
|
|
12
|
+
console.groupEnd();
|
|
13
|
+
if (debug === "break") {}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return update;
|
|
17
|
+
});
|
|
18
|
+
}, [setter, debug]);
|
|
12
19
|
}
|
|
13
20
|
function mergeIfNotShallowEqual(prev, next) {
|
|
14
|
-
|
|
21
|
+
if (!prev || !next || isEqualShallow(prev, next)) {
|
|
22
|
+
if (!prev) return next;
|
|
23
|
+
return prev;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
...prev,
|
|
27
|
+
...next
|
|
28
|
+
};
|
|
15
29
|
}
|
|
16
30
|
function isEqualShallow(prev, next) {
|
|
17
|
-
for (const key in next)
|
|
18
|
-
if (prev[key] !== next[key])
|
|
19
|
-
return
|
|
20
|
-
|
|
31
|
+
for (const key in next) {
|
|
32
|
+
if (prev[key] !== next[key]) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
21
37
|
}
|
|
22
|
-
export {
|
|
23
|
-
isEqualShallow,
|
|
24
|
-
mergeIfNotShallowEqual,
|
|
25
|
-
useCreateShallowSetState
|
|
26
|
-
};
|
|
38
|
+
export { isEqualShallow, mergeIfNotShallowEqual, useCreateShallowSetState };
|
|
27
39
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,mBAAmB;AAMrB,SAAS,yBACd,QACA,OACsD;AAEtD,SAAO;AAAA,IACL,CAAC,oBAAoB;AACnB,aAAO,CAAC,SAAS;AACf,cAAM,OACJ,OAAO,mBAAoB,aAAa,gBAAgB,IAAI,IAAI,iBAC5D,SAAS,uBAAuB,MAAM,IAAI;AAEhD,eAAI,QAAQ,IAAI,aAAa,iBACvB,SAAS,WAAW,SACtB,QAAQ,eAAe,0BAA0B,MAAM,MAAM,GAC7D,QAAQ,KAAK,cAAc,IAAI,GAC/B,QAAQ,MAAM,GACd,QAAQ,SAAS,IAMd;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,QAAQ,KAAK;AAAA,EAChB;AACF;AAEO,SAAS,uBACd,MACA,MACO;AACP,SAAI,CAAC,QAAQ,CAAC,QAAQ,eAAe,MAAM,IAAI,IACxC,QAAa,OAGb,EAAE,GAAG,MAAM,GAAG,KAAK;AAC5B;AAEO,SAAS,eACd,MACA,MACS;AACT,aAAW,OAAO;AAChB,QAAI,KAAK,GAAG,MAAM,KAAK,GAAG;AACxB,aAAO;AAGX,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"names":["useCallback","useCreateShallowSetState","setter","debug","stateOrGetState","prev","next","update","mergeIfNotShallowEqual","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","isEqualShallow","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAMrB,SAASC,yBACdC,MAAA,EACAC,KAAA,EACsD;EAEtD,OAAOH,WAAA,CACJI,eAAA,IAAoB;IACnBF,MAAA,CAAQG,IAAA,IAAS;MACf,MAAMC,IAAA,GACJ,OAAOF,eAAA,KAAoB,aAAaA,eAAA,CAAgBC,IAAI,IAAID,eAAA;MAClE,MAAMG,MAAA,GAASC,sBAAA,CAAuBH,IAAA,EAAMC,IAAI;MAEhD,IAAIG,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;QAC1C,IAAIR,KAAA,IAASI,MAAA,KAAWF,IAAA,EAAM;UAC5BO,OAAA,CAAQC,cAAA,CAAe,0BAA0B,MAAMN,MAAM;UAC7DK,OAAA,CAAQE,IAAA,CAAK,cAAcT,IAAI;UAC/BO,OAAA,CAAQG,KAAA,CAAM;UACdH,OAAA,CAAQI,QAAA,CAAS;UACjB,IAAIb,KAAA,KAAU,SAAS,CAEvB;QACF;MACF;MACA,OAAOI,MAAA;IACT,CAAC;EACH,GACA,CAACL,MAAA,EAAQC,KAAK,CAChB;AACF;AAEO,SAASK,uBACdH,IAAA,EACAC,IAAA,EACO;EACP,IAAI,CAACD,IAAA,IAAQ,CAACC,IAAA,IAAQW,cAAA,CAAeZ,IAAA,EAAMC,IAAI,GAAG;IAChD,IAAI,CAACD,IAAA,EAAM,OAAOC,IAAA;IAClB,OAAOD,IAAA;EACT;EACA,OAAO;IAAE,GAAGA,IAAA;IAAM,GAAGC;EAAK;AAC5B;AAEO,SAASW,eACdZ,IAAA,EACAC,IAAA,EACS;EACT,WAAWY,GAAA,IAAOZ,IAAA,EAAM;IACtB,IAAID,IAAA,CAAKa,GAAG,MAAMZ,IAAA,CAAKY,GAAG,GAAG;MAC3B,OAAO;IACT;EACF;EACA,OAAO;AACT","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -2,21 +2,38 @@ import { useCallback } from "react";
|
|
|
2
2
|
function useCreateShallowSetState(setter, debug) {
|
|
3
3
|
return useCallback(stateOrGetState => {
|
|
4
4
|
setter(prev => {
|
|
5
|
-
const next = typeof stateOrGetState
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
6
|
+
const update = mergeIfNotShallowEqual(prev, next);
|
|
7
|
+
if (process.env.NODE_ENV === "development") {
|
|
8
|
+
if (debug && update !== prev) {
|
|
9
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
10
|
+
console.info(`previously`, prev);
|
|
11
|
+
console.trace();
|
|
12
|
+
console.groupEnd();
|
|
13
|
+
if (debug === "break") {}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return update;
|
|
8
17
|
});
|
|
9
18
|
}, [setter, debug]);
|
|
10
19
|
}
|
|
11
20
|
function mergeIfNotShallowEqual(prev, next) {
|
|
12
|
-
|
|
21
|
+
if (!prev || !next || isEqualShallow(prev, next)) {
|
|
22
|
+
if (!prev) return next;
|
|
23
|
+
return prev;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
13
26
|
...prev,
|
|
14
27
|
...next
|
|
15
28
|
};
|
|
16
29
|
}
|
|
17
30
|
function isEqualShallow(prev, next) {
|
|
18
|
-
for (const key in next)
|
|
19
|
-
|
|
31
|
+
for (const key in next) {
|
|
32
|
+
if (prev[key] !== next[key]) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
20
37
|
}
|
|
21
38
|
export { isEqualShallow, mergeIfNotShallowEqual, useCreateShallowSetState };
|
|
22
39
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useCreateShallowSetState","setter","debug","stateOrGetState","prev","next","update","mergeIfNotShallowEqual","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","isEqualShallow","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAMrB,SAASC,yBACdC,MAAA,EACAC,KAAA,EACsD;EAEtD,OAAOH,WAAA,CACJI,eAAA,IAAoB;IACnBF,MAAA,CAAQG,IAAA,IAAS;MACf,MAAMC,IAAA,GACJ,OAAOF,eAAA,
|
|
1
|
+
{"version":3,"names":["useCallback","useCreateShallowSetState","setter","debug","stateOrGetState","prev","next","update","mergeIfNotShallowEqual","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","isEqualShallow","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAMrB,SAASC,yBACdC,MAAA,EACAC,KAAA,EACsD;EAEtD,OAAOH,WAAA,CACJI,eAAA,IAAoB;IACnBF,MAAA,CAAQG,IAAA,IAAS;MACf,MAAMC,IAAA,GACJ,OAAOF,eAAA,KAAoB,aAAaA,eAAA,CAAgBC,IAAI,IAAID,eAAA;MAClE,MAAMG,MAAA,GAASC,sBAAA,CAAuBH,IAAA,EAAMC,IAAI;MAEhD,IAAIG,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;QAC1C,IAAIR,KAAA,IAASI,MAAA,KAAWF,IAAA,EAAM;UAC5BO,OAAA,CAAQC,cAAA,CAAe,0BAA0B,MAAMN,MAAM;UAC7DK,OAAA,CAAQE,IAAA,CAAK,cAAcT,IAAI;UAC/BO,OAAA,CAAQG,KAAA,CAAM;UACdH,OAAA,CAAQI,QAAA,CAAS;UACjB,IAAIb,KAAA,KAAU,SAAS,CAEvB;QACF;MACF;MACA,OAAOI,MAAA;IACT,CAAC;EACH,GACA,CAACL,MAAA,EAAQC,KAAK,CAChB;AACF;AAEO,SAASK,uBACdH,IAAA,EACAC,IAAA,EACO;EACP,IAAI,CAACD,IAAA,IAAQ,CAACC,IAAA,IAAQW,cAAA,CAAeZ,IAAA,EAAMC,IAAI,GAAG;IAChD,IAAI,CAACD,IAAA,EAAM,OAAOC,IAAA;IAClB,OAAOD,IAAA;EACT;EACA,OAAO;IAAE,GAAGA,IAAA;IAAM,GAAGC;EAAK;AAC5B;AAEO,SAASW,eACdZ,IAAA,EACAC,IAAA,EACS;EACT,WAAWY,GAAA,IAAOZ,IAAA,EAAM;IACtB,IAAID,IAAA,CAAKa,GAAG,MAAMZ,IAAA,CAAKY,GAAG,GAAG;MAC3B,OAAO;IACT;EACF;EACA,OAAO;AACT","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -2,21 +2,38 @@ import { useCallback } from "react";
|
|
|
2
2
|
function useCreateShallowSetState(setter, debug) {
|
|
3
3
|
return useCallback(function (stateOrGetState) {
|
|
4
4
|
setter(function (prev) {
|
|
5
|
-
var next = typeof stateOrGetState
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
var next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
6
|
+
var update = mergeIfNotShallowEqual(prev, next);
|
|
7
|
+
if (process.env.NODE_ENV === "development") {
|
|
8
|
+
if (debug && update !== prev) {
|
|
9
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
10
|
+
console.info(`previously`, prev);
|
|
11
|
+
console.trace();
|
|
12
|
+
console.groupEnd();
|
|
13
|
+
if (debug === "break") {}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return update;
|
|
8
17
|
});
|
|
9
18
|
}, [setter, debug]);
|
|
10
19
|
}
|
|
11
20
|
function mergeIfNotShallowEqual(prev, next) {
|
|
12
|
-
|
|
21
|
+
if (!prev || !next || isEqualShallow(prev, next)) {
|
|
22
|
+
if (!prev) return next;
|
|
23
|
+
return prev;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
13
26
|
...prev,
|
|
14
27
|
...next
|
|
15
28
|
};
|
|
16
29
|
}
|
|
17
30
|
function isEqualShallow(prev, next) {
|
|
18
|
-
for (var key in next)
|
|
19
|
-
|
|
31
|
+
for (var key in next) {
|
|
32
|
+
if (prev[key] !== next[key]) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
20
37
|
}
|
|
21
38
|
export { isEqualShallow, mergeIfNotShallowEqual, useCreateShallowSetState };
|
|
22
39
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useCreateShallowSetState","setter","debug","stateOrGetState","prev","next","update","mergeIfNotShallowEqual","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","isEqualShallow","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAMrB,SAASC,yBACdC,MAAA,EACAC,KAAA,EACsD;EAEtD,OAAOH,WAAA,WAAAI,eAAA;IACLF,MAAC,WAAAG,IAAA,EAAoB;MACnB,IAAAC,IAAQ,UAASF,eAAA,
|
|
1
|
+
{"version":3,"names":["useCallback","useCreateShallowSetState","setter","debug","stateOrGetState","prev","next","update","mergeIfNotShallowEqual","process","env","NODE_ENV","console","groupCollapsed","info","trace","groupEnd","isEqualShallow","key"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAMrB,SAASC,yBACdC,MAAA,EACAC,KAAA,EACsD;EAEtD,OAAOH,WAAA,WAAAI,eAAA;IACLF,MAAC,WAAAG,IAAA,EAAoB;MACnB,IAAAC,IAAQ,UAASF,eAAA,kBAAAA,eAAA,CAAAC,IAAA,IAAAD,eAAA;MACf,IAAAG,MAAM,GAAAC,sBACG,CAAAH,IAAA,EAAoBC,IAAA;MAC7B,IAAAG,OAAM,CAAAC,GAAA,CAAAC,QAAS,kBAAuB;QAEtC,IAAIR,KAAA,IAAQI,MAAI,KAAAF,IAAA,EAAa;UAC3BO,OAAI,CAAAC,cAAS,yBAAiB,QAAAN,MAAA;UAC5BK,OAAA,CAAAE,IAAQ,aAAe,EAAAT,IAAA;UACvBO,OAAA,CAAAG,KAAQ,EAAK;UACbH,OAAA,CAAAI,QAAc;UACd,IAAAb,KAAA,KAAQ,OAAS,GACjB;QAAuB;MAEvB;MACF,OACFI,MAAA;IACA;EAAO,IAEXL,MAAA,EACAC,KAAC,CACH;AACF;AAEO,SAASK,uBACdH,IAAA,EACAC,IAAA,EACO;EACP,IAAI,CAACD,IAAA,IAAQ,CAACC,IAAA,IAAQW,cAAA,CAAeZ,IAAA,EAAMC,IAAI,GAAG;IAChD,IAAI,CAACD,IAAA,EAAM,OAAOC,IAAA;IAClB,OAAOD,IAAA;EACT;EACA,OAAO;IACT,GAAAA,IAAA;IAEO,GAAAC;EAIL;AACE;AACE,SAAAW,cAAOA,CAAAZ,IAAA,EAAAC,IAAA;EAAA,KACT,IAAAY,GAAA,IAAAZ,IAAA;IACF,IAAAD,IAAA,CAAAa,GAAA,MAAAZ,IAAA,CAAAY,GAAA;MACA,OAAO;IACT","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/is-equal-shallow",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.40",
|
|
4
4
|
"files": [
|
|
5
5
|
"src",
|
|
6
6
|
"types",
|
|
@@ -14,15 +14,12 @@
|
|
|
14
14
|
"./package.json": "./package.json",
|
|
15
15
|
".": {
|
|
16
16
|
"types": "./types/index.d.ts",
|
|
17
|
-
"react-native":
|
|
18
|
-
|
|
19
|
-
"import": "./dist/esm/index.native.js",
|
|
20
|
-
"require": "./dist/cjs/index.native.js"
|
|
21
|
-
},
|
|
17
|
+
"react-native": "./dist/esm/index.native.js",
|
|
18
|
+
"browser": "./dist/esm/index.mjs",
|
|
22
19
|
"module": "./dist/esm/index.mjs",
|
|
23
20
|
"import": "./dist/esm/index.mjs",
|
|
24
21
|
"require": "./dist/cjs/index.cjs",
|
|
25
|
-
"default": "./dist/
|
|
22
|
+
"default": "./dist/esm/index.mjs"
|
|
26
23
|
}
|
|
27
24
|
},
|
|
28
25
|
"publishConfig": {
|
|
@@ -35,7 +32,7 @@
|
|
|
35
32
|
"clean:build": "tamagui-build clean:build"
|
|
36
33
|
},
|
|
37
34
|
"devDependencies": {
|
|
38
|
-
"@tamagui/build": "2.0.0-rc.
|
|
35
|
+
"@tamagui/build": "2.0.0-rc.40",
|
|
39
36
|
"react": ">=19"
|
|
40
37
|
},
|
|
41
38
|
"peerDependencies": {
|
package/types/index.d.ts.map
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"sources": [
|
|
5
5
|
"src/index.ts"
|
|
6
6
|
],
|
|
7
|
+
"version": 3,
|
|
7
8
|
"sourcesContent": [
|
|
8
9
|
"import { useCallback } from 'react'\n\ntype DebugProp = null | undefined | boolean | 'profile' | 'verbose' | 'break'\n\nexport type CallbackSetState<State> = (next: (cb: State) => State) => void\n\nexport function useCreateShallowSetState<State extends Record<string, unknown>>(\n setter: CallbackSetState<State>,\n debug?: DebugProp\n): React.Dispatch<React.SetStateAction<Partial<State>>> {\n // this must be memoized or it ruins performance in components\n return useCallback(\n (stateOrGetState) => {\n setter((prev) => {\n const next =\n typeof stateOrGetState === 'function' ? stateOrGetState(prev) : stateOrGetState\n const update = mergeIfNotShallowEqual(prev, next)\n\n if (process.env.NODE_ENV === 'development') {\n if (debug && update !== prev) {\n console.groupCollapsed(`setStateShallow CHANGE`, '=>', update)\n console.info(`previously`, prev)\n console.trace()\n console.groupEnd()\n if (debug === 'break') {\n // debugger is intentionally here for debugging\n }\n }\n }\n return update\n })\n },\n [setter, debug]\n )\n}\n\nexport function mergeIfNotShallowEqual<State extends Record<string, unknown>>(\n prev: State,\n next: Partial<State>\n): State {\n if (!prev || !next || isEqualShallow(prev, next)) {\n if (!prev) return next as State\n return prev\n }\n return { ...prev, ...next }\n}\n\nexport function isEqualShallow(\n prev: Record<string, unknown>,\n next: Record<string, unknown>\n): boolean {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return false\n }\n }\n return true\n}\n"
|
|
9
|
-
]
|
|
10
|
-
"version": 3
|
|
10
|
+
]
|
|
11
11
|
}
|
package/dist/cjs/index.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
-
var index_exports = {};
|
|
16
|
-
__export(index_exports, {
|
|
17
|
-
isEqualShallow: () => isEqualShallow,
|
|
18
|
-
mergeIfNotShallowEqual: () => mergeIfNotShallowEqual,
|
|
19
|
-
useCreateShallowSetState: () => useCreateShallowSetState
|
|
20
|
-
});
|
|
21
|
-
module.exports = __toCommonJS(index_exports);
|
|
22
|
-
var import_react = require("react");
|
|
23
|
-
function useCreateShallowSetState(setter, debug) {
|
|
24
|
-
return (0, import_react.useCallback)(
|
|
25
|
-
(stateOrGetState) => {
|
|
26
|
-
setter((prev) => {
|
|
27
|
-
const next = typeof stateOrGetState == "function" ? stateOrGetState(prev) : stateOrGetState, update = mergeIfNotShallowEqual(prev, next);
|
|
28
|
-
return process.env.NODE_ENV === "development" && debug && update !== prev && (console.groupCollapsed("setStateShallow CHANGE", "=>", update), console.info("previously", prev), console.trace(), console.groupEnd()), update;
|
|
29
|
-
});
|
|
30
|
-
},
|
|
31
|
-
[setter, debug]
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
function mergeIfNotShallowEqual(prev, next) {
|
|
35
|
-
return !prev || !next || isEqualShallow(prev, next) ? prev || next : { ...prev, ...next };
|
|
36
|
-
}
|
|
37
|
-
function isEqualShallow(prev, next) {
|
|
38
|
-
for (const key in next)
|
|
39
|
-
if (prev[key] !== next[key])
|
|
40
|
-
return !1;
|
|
41
|
-
return !0;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4B;AAMrB,SAAS,yBACd,QACA,OACsD;AAEtD,aAAO;AAAA,IACL,CAAC,oBAAoB;AACnB,aAAO,CAAC,SAAS;AACf,cAAM,OACJ,OAAO,mBAAoB,aAAa,gBAAgB,IAAI,IAAI,iBAC5D,SAAS,uBAAuB,MAAM,IAAI;AAEhD,eAAI,QAAQ,IAAI,aAAa,iBACvB,SAAS,WAAW,SACtB,QAAQ,eAAe,0BAA0B,MAAM,MAAM,GAC7D,QAAQ,KAAK,cAAc,IAAI,GAC/B,QAAQ,MAAM,GACd,QAAQ,SAAS,IAMd;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,QAAQ,KAAK;AAAA,EAChB;AACF;AAEO,SAAS,uBACd,MACA,MACO;AACP,SAAI,CAAC,QAAQ,CAAC,QAAQ,eAAe,MAAM,IAAI,IACxC,QAAa,OAGb,EAAE,GAAG,MAAM,GAAG,KAAK;AAC5B;AAEO,SAAS,eACd,MACA,MACS;AACT,aAAW,OAAO;AAChB,QAAI,KAAK,GAAG,MAAM,KAAK,GAAG;AACxB,aAAO;AAGX,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|