@tamagui/web 1.125.8 → 1.125.10
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/hooks/getThemeProxied.cjs +2 -6
- package/dist/cjs/hooks/getThemeProxied.js +2 -9
- package/dist/cjs/hooks/getThemeProxied.js.map +1 -1
- package/dist/cjs/hooks/getThemeProxied.native.js +2 -5
- package/dist/cjs/hooks/getThemeProxied.native.js.map +2 -2
- package/dist/cjs/hooks/useThemeState.cjs +21 -30
- package/dist/cjs/hooks/useThemeState.js +19 -25
- package/dist/cjs/hooks/useThemeState.js.map +2 -2
- package/dist/cjs/hooks/useThemeState.native.js +20 -37
- package/dist/cjs/hooks/useThemeState.native.js.map +2 -2
- package/dist/esm/hooks/getThemeProxied.js +1 -9
- package/dist/esm/hooks/getThemeProxied.js.map +1 -1
- package/dist/esm/hooks/getThemeProxied.mjs +1 -5
- package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
- package/dist/esm/hooks/getThemeProxied.native.js +1 -6
- package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
- package/dist/esm/hooks/useThemeState.js +19 -25
- package/dist/esm/hooks/useThemeState.js.map +2 -2
- package/dist/esm/hooks/useThemeState.mjs +22 -30
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +27 -41
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/package.json +11 -11
- package/src/hooks/getThemeProxied.ts +2 -7
- package/src/hooks/useThemeState.ts +19 -30
- package/types/helpers/consoleLog.d.ts +0 -5
- package/types/helpers/consoleLog.d.ts.map +1 -1
- package/types/helpers/consoleLog.native.d.ts +7 -0
- package/types/helpers/consoleLog.native.d.ts.map +1 -0
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/hooks/getThemeProxied.d.ts +1 -1
- package/types/hooks/getThemeProxied.d.ts.map +1 -1
- package/types/hooks/useThemeState.d.ts +0 -1
- package/types/hooks/useThemeState.d.ts.map +1 -1
|
@@ -26,8 +26,7 @@ module.exports = __toCommonJS(getThemeProxied_exports);
|
|
|
26
26
|
var import_constants = require("@tamagui/constants"),
|
|
27
27
|
import_config = require("../config.cjs"),
|
|
28
28
|
import_createVariable = require("../createVariable.cjs"),
|
|
29
|
-
import_doesRootSchemeMatchSystem = require("./doesRootSchemeMatchSystem.cjs")
|
|
30
|
-
import_useThemeState = require("./useThemeState.cjs");
|
|
29
|
+
import_doesRootSchemeMatchSystem = require("./doesRootSchemeMatchSystem.cjs");
|
|
31
30
|
const cache = /* @__PURE__ */new Map();
|
|
32
31
|
let curKeys, curProps, curState;
|
|
33
32
|
const emptyObject = {};
|
|
@@ -36,10 +35,7 @@ function getThemeProxied(_props, _state, _keys) {
|
|
|
36
35
|
if (curKeys = _keys, curProps = _props, curState = _state, cache.has(curState.theme)) return cache.get(curState.theme);
|
|
37
36
|
const config = (0, import_config.getConfig)();
|
|
38
37
|
function track(key) {
|
|
39
|
-
|
|
40
|
-
const realId = import_useThemeState.keysToId.get(curKeys);
|
|
41
|
-
console.info(` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`, curKeys, globalThis.states?.get(realId + 1));
|
|
42
|
-
}
|
|
38
|
+
curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`, curKeys));
|
|
43
39
|
}
|
|
44
40
|
const proxied = Object.fromEntries(Object.entries(_state.theme).flatMap(([key, value]) => {
|
|
45
41
|
const proxied2 = {
|
|
@@ -17,7 +17,7 @@ __export(getThemeProxied_exports, {
|
|
|
17
17
|
getThemeProxied: () => getThemeProxied
|
|
18
18
|
});
|
|
19
19
|
module.exports = __toCommonJS(getThemeProxied_exports);
|
|
20
|
-
var import_constants = require("@tamagui/constants"), import_config = require("../config"), import_createVariable = require("../createVariable"), import_doesRootSchemeMatchSystem = require("./doesRootSchemeMatchSystem")
|
|
20
|
+
var import_constants = require("@tamagui/constants"), import_config = require("../config"), import_createVariable = require("../createVariable"), import_doesRootSchemeMatchSystem = require("./doesRootSchemeMatchSystem");
|
|
21
21
|
const cache = /* @__PURE__ */ new Map();
|
|
22
22
|
let curKeys, curProps, curState;
|
|
23
23
|
const emptyObject = {};
|
|
@@ -28,14 +28,7 @@ function getThemeProxied(_props, _state, _keys) {
|
|
|
28
28
|
return cache.get(curState.theme);
|
|
29
29
|
const config = (0, import_config.getConfig)();
|
|
30
30
|
function track(key) {
|
|
31
|
-
|
|
32
|
-
const realId = import_useThemeState.keysToId.get(curKeys);
|
|
33
|
-
console.info(
|
|
34
|
-
` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`,
|
|
35
|
-
curKeys,
|
|
36
|
-
globalThis.states?.get(realId + 1)
|
|
37
|
-
);
|
|
38
|
-
}
|
|
31
|
+
curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */ new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`, curKeys));
|
|
39
32
|
}
|
|
40
33
|
const proxied = Object.fromEntries(
|
|
41
34
|
Object.entries(_state.theme).flatMap(([key, value]) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/getThemeProxied.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsB,+BAEtB,gBAAsC,sBAEtC,wBAA4B,8BAQ5B,mCAA0C
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsB,+BAEtB,gBAAsC,sBAEtC,wBAA4B,8BAQ5B,mCAA0C;AAsC1C,MAAM,QAAwC,oBAAI,IAAI;AAEtD,IAAI,SACA,UACA;AAEJ,MAAM,cAAc,CAAC;AAEd,SAAS,gBAEd,QACA,QACA,OACc;AACd,MAAI,CAAC,QAAQ;AACX,WAAO;AAOT,MAJA,UAAU,OACV,WAAW,QACX,WAAW,QAEP,MAAM,IAAI,SAAS,KAAK;AAE1B,WADgB,MAAM,IAAI,SAAS,KAAK;AAO1C,QAAM,aAAS,yBAAU;AAEzB,WAAS,MAAM,KAAa;AAC1B,IAAK,YACA,QAAQ,YACX,QAAQ,UAAU,oBAAI,IAAI,IAE5B,QAAQ,QAAQ,IAAI,GAAG,GACnB,QAAQ,IAAI,aAAa,iBAAiB,SAAS,SACrD,QAAQ,KAAK,2CAAoC,GAAG,IAAI,OAAO;AAAA,EAEnE;AAEA,QAAM,UAAU,OAAO;AAAA,IACrB,OAAO,QAAQ,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,YAAMA,WAAU;AAAA,QACd,GAAG;AAAA,QACH,IAAI,MAAM;AAER,iBAAK,WAAW,wBAEd,MAAM,GAAG,GAEJ,MAAM;AAAA,QACf;AAAA,QACA,IAAI,UAAkB;AACpB,cAAI,CAAC,SAAU;AAEf,gBAAM,aAAS,mCAAY,KAAK,GAC1B,EAAE,MAAM,QAAQ,SAAS,IAAI;AA0CnC,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,QACL,CAAC,KAAKA,QAAO;AAAA,QACb,CAAC,IAAI,GAAG,IAAIA,QAAO;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,eAAM,IAAI,OAAO,OAAO,OAAO,GAExB;AACT;",
|
|
5
5
|
"names": ["proxied"]
|
|
6
6
|
}
|
|
@@ -18,7 +18,7 @@ __export(getThemeProxied_exports, {
|
|
|
18
18
|
getThemeProxied: () => getThemeProxied
|
|
19
19
|
});
|
|
20
20
|
module.exports = __toCommonJS(getThemeProxied_exports);
|
|
21
|
-
var import_constants = require("@tamagui/constants"), import_config = require("../config"), import_createVariable = require("../createVariable"), import_doesRootSchemeMatchSystem = require("./doesRootSchemeMatchSystem"),
|
|
21
|
+
var import_constants = require("@tamagui/constants"), import_config = require("../config"), import_createVariable = require("../createVariable"), import_doesRootSchemeMatchSystem = require("./doesRootSchemeMatchSystem"), cache = /* @__PURE__ */ new Map(), curKeys, curProps, curState, emptyObject = {};
|
|
22
22
|
function getThemeProxied(_props, _state, _keys) {
|
|
23
23
|
if (!(_state != null && _state.theme))
|
|
24
24
|
return emptyObject;
|
|
@@ -28,10 +28,7 @@ function getThemeProxied(_props, _state, _keys) {
|
|
|
28
28
|
}
|
|
29
29
|
var config = (0, import_config.getConfig)();
|
|
30
30
|
function track(key) {
|
|
31
|
-
|
|
32
|
-
var _globalThis_states, realId = import_useThemeState.keysToId.get(curKeys);
|
|
33
|
-
console.info(` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`, curKeys, (_globalThis_states = globalThis.states) === null || _globalThis_states === void 0 ? void 0 : _globalThis_states.get(realId + 1));
|
|
34
|
-
}
|
|
31
|
+
curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */ new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`, curKeys));
|
|
35
32
|
}
|
|
36
33
|
var proxied1 = Object.fromEntries(Object.entries(_state.theme).flatMap(function(param) {
|
|
37
34
|
var [key, value] = param, proxied2 = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/Users/n8/tamagui/code/core/web/src/hooks/getThemeProxied.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;uBAAsB,+BAEtB,gBAAsC,sBAEtC,wBAA4B,8BAQ5B,mCAA0C,
|
|
5
|
-
"names": ["cache", "Map", "curKeys", "curProps", "curState", "emptyObject", "getThemeProxied", "_props", "_state", "_keys", "theme", "has", "proxied", "get", "config", "getConfig", "track", "key", "current", "Set", "add", "process", "env", "NODE_ENV", "debug", "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;uBAAsB,+BAEtB,gBAAsC,sBAEtC,wBAA4B,8BAQ5B,mCAA0C,wCAsCpCA,QAAwC,oBAAIC,IAAAA,GAE9CC,SACAC,UACAC,UAEEC,cAAc,CAAC;AAEd,SAASC,gBAEdC,QACAC,QACAC,OAA2C;AAE3C,MAAI,EAACD,UAAAA,QAAAA,OAAQE;AACX,WAAOL;AAOT,MAJAH,UAAUO,OACVN,WAAWI,QACXH,WAAWI,QAEPR,MAAMW,IAAIP,SAASM,KAAK,GAAG;AAC7B,QAAME,UAAUZ,MAAMa,IAAIT,SAASM,KAAK;AACxC,WAAOE;EACT;AAKA,MAAME,aAASC,yBAAAA;AAEf,WAASC,MAAMC,KAAW;AACxB,IAAKf,YACAA,QAAQgB,YACXhB,QAAQgB,UAAU,oBAAIC,IAAAA,IAExBjB,QAAQgB,QAAQE,IAAIH,GAAAA,GAChBI,QAAQC,IAAIC,aAAa,iBAAiBpB,SAASqB,SACrDC,QAAQC,KAAK,2CAAoCT,GAAAA,IAAOf,OAAAA;EAE5D;AAEA,MAAMU,WAAUe,OAAOC,YACrBD,OAAOE,QAAQrB,OAAOE,KAAK,EAAEoB,QAAQ,SAAA,OAAA;QAAC,CAACb,KAAKc,KAAAA,IAAM,OAC1CnB,WAAU;MACd,GAAGmB;MACH,IAAIC,MAAM;AAER,eAAKC,WAAWC,wBAEdlB,MAAMC,GAAAA,GAEDc,MAAMC;MACf;MACAnB,IAAIsB,UAAgB;AAClB,YAAK/B,UAEL;cAAMgC,aAASC,mCAAYN,KAAAA,GACrB,EAAEO,MAAMC,QAAQC,SAAQ,IAAKpC,UAK3BqC,iBACJF,UACAJ,aAAa,SACbO,0BACA,CAACvC,SAASwC,aACVC,0BAAW,kBAAA,KACXJ,aAAa,SACbK,4DAAAA;AAEF,cAAIJ,gBAAgB;gBAGQ3B,qBACQA,6BAH5BgC,iBAAiBP,WAAW,SAAS,UAAU,QAC/CQ,eAAeT,KAAKU,QAAQT,QAAQO,cAAAA,GACpCG,YAAQZ,oCAAYvB,sBAAAA,OAAOoC,OAAOZ,IAAAA,OAAK,QAAnBxB,wBAAAA,SAAAA,SAAAA,oBAAsBG,GAAAA,CAAI,GAC9CkC,oBAAgBd,oCAAYvB,8BAAAA,OAAOoC,OAAOH,YAAAA,OAAa,QAA3BjC,gCAAAA,SAAAA,SAAAA,4BAA8BG,GAAAA,CAAI,GAE9DmC,aAAa;cACjBC,SAAS;gBACP,CAACd,MAAAA,GAASU;gBACV,CAACH,cAAAA,GAAiBK;cACpB;YACF;AAEA,mBAAOC;UACT;AAEA,iBAAI/B,QAAQC,IAAIC,aAAa,iBAAiBpB,SAASqB,SACrDC,QAAQC,KAAK;2BACAS,aAAa,KAAA;yBACfO,sBAAAA;yBACAvC,SAASwC,KAAK;kCACTC,0BAAW,kBAAA,CAAA;eAC1B,GAGH5B,MAAMC,GAAAA,GAGDmB;;MACT;IACF;AAEA,WAAO;MACL;QAACnB;QAAKL;;MACN;QAAC,IAAIK,GAAAA;QAAOL;;;EAEhB,CAAA,CAAA;AAGFZ,eAAMsD,IAAI9C,OAAOE,OAAOE,QAAAA,GAEjBA;AACT;",
|
|
5
|
+
"names": ["cache", "Map", "curKeys", "curProps", "curState", "emptyObject", "getThemeProxied", "_props", "_state", "_keys", "theme", "has", "proxied", "get", "config", "getConfig", "track", "key", "current", "Set", "add", "process", "env", "NODE_ENV", "debug", "console", "info", "Object", "fromEntries", "entries", "flatMap", "value", "val", "globalThis", "tamaguiAvoidTracking", "platform", "outVal", "getVariable", "name", "scheme", "inverses", "shouldOptimize", "isIos", "deopt", "getSetting", "doesRootSchemeMatchSystem", "oppositeScheme", "oppositeName", "replace", "color", "themes", "oppositeColor", "dynamicVal", "dynamic", "set"]
|
|
6
6
|
}
|
|
@@ -25,7 +25,6 @@ __export(useThemeState_exports, {
|
|
|
25
25
|
getRootThemeState: () => getRootThemeState,
|
|
26
26
|
getThemeState: () => getThemeState,
|
|
27
27
|
hasThemeUpdatingProps: () => hasThemeUpdatingProps,
|
|
28
|
-
keysToId: () => keysToId,
|
|
29
28
|
useThemeState: () => useThemeState
|
|
30
29
|
});
|
|
31
30
|
module.exports = __toCommonJS(useThemeState_exports);
|
|
@@ -33,25 +32,13 @@ var import_constants = require("@tamagui/constants"),
|
|
|
33
32
|
import_react = require("react"),
|
|
34
33
|
import_config = require("../config.cjs");
|
|
35
34
|
const ThemeStateContext = (0, import_react.createContext)(""),
|
|
36
|
-
keysToId = /* @__PURE__ */new WeakMap(),
|
|
37
35
|
allListeners = /* @__PURE__ */new Map(),
|
|
38
36
|
listenersByParent = {},
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
HasRenderedOnce = /* @__PURE__ */new WeakMap(),
|
|
38
|
+
HadTheme = /* @__PURE__ */new WeakMap(),
|
|
39
|
+
PendingUpdate = /* @__PURE__ */new Map(),
|
|
41
40
|
states = /* @__PURE__ */new Map(),
|
|
42
41
|
localStates = /* @__PURE__ */new Map();
|
|
43
|
-
process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = () => {
|
|
44
|
-
function buildTree(id) {
|
|
45
|
-
const node = states.get(id);
|
|
46
|
-
if (!node) return null;
|
|
47
|
-
const children = Array.from(states.values()).filter(child => child?.parentId === id).map(child => buildTree(child.id)).filter(Boolean);
|
|
48
|
-
return {
|
|
49
|
-
...node,
|
|
50
|
-
children
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
rootThemeState && console.info(buildTree(rootThemeState.id));
|
|
54
|
-
});
|
|
55
42
|
let shouldForce = !1;
|
|
56
43
|
const forceUpdateThemes = () => {
|
|
57
44
|
cacheVersion++, shouldForce = !0, allListeners.forEach(cb => cb());
|
|
@@ -75,16 +62,16 @@ const getRootThemeState = () => rootThemeState,
|
|
|
75
62
|
};
|
|
76
63
|
const id = (0, import_react.useId)(),
|
|
77
64
|
subscribe = (0, import_react.useCallback)(cb => (listenersByParent[parentId] ||= /* @__PURE__ */new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
|
|
78
|
-
|
|
65
|
+
PendingUpdate.set(id, shouldForce ? "force" : !0), cb();
|
|
79
66
|
}), () => {
|
|
80
|
-
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id),
|
|
67
|
+
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), PendingUpdate.delete(id);
|
|
81
68
|
}), [id, parentId]),
|
|
82
69
|
propsKey = getPropsKey(props),
|
|
83
70
|
getSnapshot = () => {
|
|
84
71
|
let local = localStates.get(id);
|
|
85
|
-
const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 :
|
|
86
|
-
[rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate,
|
|
87
|
-
return
|
|
72
|
+
const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : HasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0,
|
|
73
|
+
[rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
|
|
74
|
+
return PendingUpdate.delete(id), (!local || rerender) && (local = {
|
|
88
75
|
...next
|
|
89
76
|
}, localStates.set(id, local)), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` ${id} \u{1FA84} ${rerender}`, local.name, ">", next.name), console.info({
|
|
90
77
|
props,
|
|
@@ -99,22 +86,26 @@ const getRootThemeState = () => rootThemeState,
|
|
|
99
86
|
process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
|
|
100
87
|
const state = (0, import_react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
101
88
|
return (0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
102
|
-
if (!
|
|
103
|
-
|
|
89
|
+
if (!HasRenderedOnce.get(keys)) {
|
|
90
|
+
HasRenderedOnce.set(keys, !0);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (!propsKey) {
|
|
94
|
+
HadTheme.get(keys) && scheduleUpdate(id), HadTheme.set(keys, !1);
|
|
104
95
|
return;
|
|
105
96
|
}
|
|
106
|
-
|
|
97
|
+
process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id), HadTheme.set(keys, !0);
|
|
107
98
|
}, [keys, propsKey]), state;
|
|
108
99
|
},
|
|
109
|
-
getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate,
|
|
100
|
+
getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate) => {
|
|
110
101
|
const {
|
|
111
102
|
debug
|
|
112
103
|
} = props,
|
|
113
104
|
parentState = states.get(parentId);
|
|
114
105
|
themes || (themes = (0, import_config.getConfig)().themes);
|
|
115
|
-
const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props,
|
|
106
|
+
const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === "force" ? !0 : !!needsUpdate),
|
|
116
107
|
isSameAsParent = parentState && (!name || name === parentState.name),
|
|
117
|
-
shouldRerender = !!(needsUpdate && (
|
|
108
|
+
shouldRerender = !!(needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));
|
|
118
109
|
if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
|
|
119
110
|
const message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
120
111
|
console.groupCollapsed(message), console.trace({
|
|
@@ -153,13 +144,13 @@ const getRootThemeState = () => rootThemeState,
|
|
|
153
144
|
isInverse,
|
|
154
145
|
isNew: !0
|
|
155
146
|
};
|
|
156
|
-
if (isRoot && (rootThemeState = nextState),
|
|
157
|
-
const shouldAvoidRerender =
|
|
147
|
+
if (isRoot && (rootThemeState = nextState), pendingUpdate !== "force" && lastState && lastState.name === name) return [!1, nextState];
|
|
148
|
+
const shouldAvoidRerender = pendingUpdate !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
|
|
158
149
|
return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`), console.info({
|
|
159
150
|
lastState,
|
|
160
151
|
needsUpdate,
|
|
161
152
|
nextState,
|
|
162
|
-
pendingUpdate
|
|
153
|
+
pendingUpdate
|
|
163
154
|
}), console.groupEnd()), shouldAvoidRerender ? [!1, nextState] : [!0, nextState];
|
|
164
155
|
};
|
|
165
156
|
function scheduleUpdate(id) {
|
|
@@ -19,21 +19,11 @@ __export(useThemeState_exports, {
|
|
|
19
19
|
getRootThemeState: () => getRootThemeState,
|
|
20
20
|
getThemeState: () => getThemeState,
|
|
21
21
|
hasThemeUpdatingProps: () => hasThemeUpdatingProps,
|
|
22
|
-
keysToId: () => keysToId,
|
|
23
22
|
useThemeState: () => useThemeState
|
|
24
23
|
});
|
|
25
24
|
module.exports = __toCommonJS(useThemeState_exports);
|
|
26
25
|
var import_constants = require("@tamagui/constants"), import_react = require("react"), import_config = require("../config");
|
|
27
|
-
const ThemeStateContext = (0, import_react.createContext)(""),
|
|
28
|
-
process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = () => {
|
|
29
|
-
function buildTree(id) {
|
|
30
|
-
const node = states.get(id);
|
|
31
|
-
if (!node) return null;
|
|
32
|
-
const children = Array.from(states.values()).filter((child) => child?.parentId === id).map((child) => buildTree(child.id)).filter(Boolean);
|
|
33
|
-
return { ...node, children };
|
|
34
|
-
}
|
|
35
|
-
rootThemeState && console.info(buildTree(rootThemeState.id));
|
|
36
|
-
});
|
|
26
|
+
const ThemeStateContext = (0, import_react.createContext)(""), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, HasRenderedOnce = /* @__PURE__ */ new WeakMap(), HadTheme = /* @__PURE__ */ new WeakMap(), PendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), localStates = /* @__PURE__ */ new Map();
|
|
37
27
|
let shouldForce = !1;
|
|
38
28
|
const forceUpdateThemes = () => {
|
|
39
29
|
cacheVersion++, shouldForce = !0, allListeners.forEach((cb) => cb());
|
|
@@ -52,14 +42,14 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
52
42
|
};
|
|
53
43
|
const id = (0, import_react.useId)(), subscribe = (0, import_react.useCallback)(
|
|
54
44
|
(cb) => (listenersByParent[parentId] ||= /* @__PURE__ */ new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
|
|
55
|
-
|
|
45
|
+
PendingUpdate.set(id, shouldForce ? "force" : !0), cb();
|
|
56
46
|
}), () => {
|
|
57
|
-
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id),
|
|
47
|
+
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), PendingUpdate.delete(id);
|
|
58
48
|
}),
|
|
59
49
|
[id, parentId]
|
|
60
50
|
), propsKey = getPropsKey(props), getSnapshot = () => {
|
|
61
51
|
let local = localStates.get(id);
|
|
62
|
-
const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 :
|
|
52
|
+
const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : HasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0, [rerender, next] = getNextState(
|
|
63
53
|
local,
|
|
64
54
|
props,
|
|
65
55
|
propsKey,
|
|
@@ -67,27 +57,31 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
67
57
|
id,
|
|
68
58
|
parentId,
|
|
69
59
|
needsUpdate,
|
|
70
|
-
|
|
60
|
+
PendingUpdate.get(id)
|
|
71
61
|
);
|
|
72
|
-
return
|
|
62
|
+
return PendingUpdate.delete(id), (!local || rerender) && (local = { ...next }, localStates.set(id, local)), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` ${id} \u{1FA84} ${rerender}`, local.name, ">", next.name), console.info({ props, propsKey, isRoot, parentId, local, next, needsUpdate }), console.groupEnd()), Object.assign(local, next), local.id = id, states.set(id, next), local;
|
|
73
63
|
};
|
|
74
64
|
process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
|
|
75
65
|
const state = (0, import_react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
76
66
|
return (0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
77
|
-
if (!
|
|
78
|
-
|
|
67
|
+
if (!HasRenderedOnce.get(keys)) {
|
|
68
|
+
HasRenderedOnce.set(keys, !0);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!propsKey) {
|
|
72
|
+
HadTheme.get(keys) && scheduleUpdate(id), HadTheme.set(keys, !1);
|
|
79
73
|
return;
|
|
80
74
|
}
|
|
81
|
-
|
|
75
|
+
process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id), HadTheme.set(keys, !0);
|
|
82
76
|
}, [keys, propsKey]), state;
|
|
83
|
-
}, getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate,
|
|
77
|
+
}, getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate) => {
|
|
84
78
|
const { debug } = props, parentState = states.get(parentId);
|
|
85
79
|
themes || (themes = (0, import_config.getConfig)().themes);
|
|
86
80
|
const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(
|
|
87
81
|
parentState?.name,
|
|
88
82
|
props,
|
|
89
|
-
|
|
90
|
-
), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (
|
|
83
|
+
pendingUpdate === "force" ? !0 : !!needsUpdate
|
|
84
|
+
), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));
|
|
91
85
|
if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
|
|
92
86
|
const message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
93
87
|
console.groupCollapsed(message), console.trace({ name, lastState, parentState, props, propsKey, id, isSameAsParent }), console.groupEnd();
|
|
@@ -111,12 +105,12 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
111
105
|
isInverse,
|
|
112
106
|
isNew: !0
|
|
113
107
|
};
|
|
114
|
-
if (isRoot && (rootThemeState = nextState),
|
|
108
|
+
if (isRoot && (rootThemeState = nextState), pendingUpdate !== "force" && lastState && lastState.name === name)
|
|
115
109
|
return [!1, nextState];
|
|
116
|
-
const shouldAvoidRerender =
|
|
110
|
+
const shouldAvoidRerender = pendingUpdate !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
|
|
117
111
|
return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(
|
|
118
112
|
` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`
|
|
119
|
-
), console.info({ lastState, needsUpdate, nextState, pendingUpdate
|
|
113
|
+
), console.info({ lastState, needsUpdate, nextState, pendingUpdate }), console.groupEnd()), shouldAvoidRerender ? [!1, nextState] : [!0, nextState];
|
|
120
114
|
};
|
|
121
115
|
function scheduleUpdate(id) {
|
|
122
116
|
const queue = [id], visited = /* @__PURE__ */ new Set();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useThemeState.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
5
|
-
"names": ["
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["themes"]
|
|
6
6
|
}
|
|
@@ -20,28 +20,10 @@ __export(useThemeState_exports, {
|
|
|
20
20
|
getRootThemeState: () => getRootThemeState,
|
|
21
21
|
getThemeState: () => getThemeState,
|
|
22
22
|
hasThemeUpdatingProps: () => hasThemeUpdatingProps,
|
|
23
|
-
keysToId: () => keysToId,
|
|
24
23
|
useThemeState: () => useThemeState
|
|
25
24
|
});
|
|
26
25
|
module.exports = __toCommonJS(useThemeState_exports);
|
|
27
|
-
var import_constants = require("@tamagui/constants"), import_react = require("react"), import_config = require("../config"), ThemeStateContext = (0, import_react.createContext)(""),
|
|
28
|
-
process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = function() {
|
|
29
|
-
function buildTree(id) {
|
|
30
|
-
var node = states.get(id);
|
|
31
|
-
if (!node) return null;
|
|
32
|
-
var children = Array.from(states.values()).filter(function(child) {
|
|
33
|
-
return (child == null ? void 0 : child.parentId) === id;
|
|
34
|
-
}).map(function(child) {
|
|
35
|
-
return buildTree(child.id);
|
|
36
|
-
}).filter(Boolean);
|
|
37
|
-
return {
|
|
38
|
-
...node,
|
|
39
|
-
children
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
rootThemeState && console.info(buildTree(rootThemeState.id));
|
|
43
|
-
});
|
|
44
|
-
var shouldForce = !1, forceUpdateThemes = function() {
|
|
26
|
+
var import_constants = require("@tamagui/constants"), import_react = require("react"), import_config = require("../config"), ThemeStateContext = (0, import_react.createContext)(""), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, HasRenderedOnce = /* @__PURE__ */ new WeakMap(), HadTheme = /* @__PURE__ */ new WeakMap(), PendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), localStates = /* @__PURE__ */ new Map(), shouldForce = !1, forceUpdateThemes = function() {
|
|
45
27
|
cacheVersion++, shouldForce = !0, allListeners.forEach(function(cb) {
|
|
46
28
|
return cb();
|
|
47
29
|
});
|
|
@@ -63,16 +45,16 @@ var shouldForce = !1, forceUpdateThemes = function() {
|
|
|
63
45
|
var id = (0, import_react.useId)(), subscribe = (0, import_react.useCallback)(function(cb) {
|
|
64
46
|
var _listenersByParent, _parentId;
|
|
65
47
|
return (_listenersByParent = listenersByParent)[_parentId = parentId] || (_listenersByParent[_parentId] = /* @__PURE__ */ new Set()), listenersByParent[parentId].add(id), allListeners.set(id, function() {
|
|
66
|
-
|
|
48
|
+
PendingUpdate.set(id, shouldForce ? "force" : !0), cb();
|
|
67
49
|
}), function() {
|
|
68
|
-
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id),
|
|
50
|
+
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), PendingUpdate.delete(id);
|
|
69
51
|
};
|
|
70
52
|
}, [
|
|
71
53
|
id,
|
|
72
54
|
parentId
|
|
73
55
|
]), propsKey = getPropsKey(props), getSnapshot = function() {
|
|
74
|
-
var _keys_current, _props_needsUpdate, local = localStates.get(id), needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 :
|
|
75
|
-
return
|
|
56
|
+
var _keys_current, _props_needsUpdate, local = localStates.get(id), needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : HasRenderedOnce.get(keys) ? !(keys == null || (_keys_current = keys.current) === null || _keys_current === void 0) && _keys_current.size ? !0 : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props) : !0, [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
|
|
57
|
+
return PendingUpdate.delete(id), (!local || rerender) && (local = {
|
|
76
58
|
...next
|
|
77
59
|
}, localStates.set(id, local)), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` ${id} \u{1FA84} ${rerender}`, local.name, ">", next.name), console.info({
|
|
78
60
|
props,
|
|
@@ -87,25 +69,27 @@ var shouldForce = !1, forceUpdateThemes = function() {
|
|
|
87
69
|
process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
|
|
88
70
|
var state = (0, import_react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
89
71
|
return (0, import_constants.useIsomorphicLayoutEffect)(function() {
|
|
90
|
-
if (!
|
|
91
|
-
|
|
72
|
+
if (!HasRenderedOnce.get(keys)) {
|
|
73
|
+
HasRenderedOnce.set(keys, !0);
|
|
92
74
|
return;
|
|
93
75
|
}
|
|
94
|
-
if (propsKey) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
if (!propsKey) {
|
|
77
|
+
HadTheme.get(keys) && scheduleUpdate(id), HadTheme.set(keys, !1);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile") {
|
|
81
|
+
var _states_get;
|
|
82
|
+
console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, (_states_get = states.get(id)) === null || _states_get === void 0 ? void 0 : _states_get.name);
|
|
100
83
|
}
|
|
84
|
+
scheduleUpdate(id), HadTheme.set(keys, !0);
|
|
101
85
|
}, [
|
|
102
86
|
keys,
|
|
103
87
|
propsKey
|
|
104
88
|
]), state;
|
|
105
89
|
}, getNextState = function(lastState, props, propsKey) {
|
|
106
|
-
var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0,
|
|
90
|
+
var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0, pendingUpdate = arguments.length > 7 ? arguments[7] : void 0, { debug } = props, parentState = states.get(parentId);
|
|
107
91
|
themes || (themes = (0, import_config.getConfig)().themes);
|
|
108
|
-
var name = !propsKey && (!lastState || !(lastState != null && lastState.isNew)) ? null : getNewThemeName(parentState == null ? void 0 : parentState.name, props,
|
|
92
|
+
var name = !propsKey && (!lastState || !(lastState != null && lastState.isNew)) ? null : getNewThemeName(parentState == null ? void 0 : parentState.name, props, pendingUpdate === "force" ? !0 : !!needsUpdate), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (pendingUpdate || (lastState == null ? void 0 : lastState.name) !== (parentState == null ? void 0 : parentState.name)));
|
|
109
93
|
if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
|
|
110
94
|
var message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
111
95
|
console.info(message);
|
|
@@ -147,17 +131,17 @@ var shouldForce = !1, forceUpdateThemes = function() {
|
|
|
147
131
|
isInverse,
|
|
148
132
|
isNew: !0
|
|
149
133
|
};
|
|
150
|
-
if (isRoot && (rootThemeState = nextState),
|
|
134
|
+
if (isRoot && (rootThemeState = nextState), pendingUpdate !== "force" && lastState && lastState.name === name)
|
|
151
135
|
return [
|
|
152
136
|
!1,
|
|
153
137
|
nextState
|
|
154
138
|
];
|
|
155
|
-
var shouldAvoidRerender =
|
|
139
|
+
var shouldAvoidRerender = pendingUpdate !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
|
|
156
140
|
return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`), console.info({
|
|
157
141
|
lastState,
|
|
158
142
|
needsUpdate,
|
|
159
143
|
nextState,
|
|
160
|
-
pendingUpdate
|
|
144
|
+
pendingUpdate
|
|
161
145
|
}), console.groupEnd()), shouldAvoidRerender ? [
|
|
162
146
|
!1,
|
|
163
147
|
nextState
|
|
@@ -261,7 +245,6 @@ var getPropsKey = function(param) {
|
|
|
261
245
|
getRootThemeState,
|
|
262
246
|
getThemeState,
|
|
263
247
|
hasThemeUpdatingProps,
|
|
264
|
-
keysToId,
|
|
265
248
|
useThemeState
|
|
266
249
|
});
|
|
267
250
|
//# sourceMappingURL=useThemeState.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/Users/n8/tamagui/code/core/web/src/hooks/useThemeState.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA
|
|
5
|
-
"names": ["ThemeStateContext", "createContext", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ThemeStateContext", "createContext", "allListeners", "Map", "listenersByParent", "HasRenderedOnce", "WeakMap", "HadTheme", "PendingUpdate", "states", "localStates", "shouldForce", "forceUpdateThemes", "cacheVersion", "forEach", "cb", "getThemeState", "id", "get", "themes", "rootThemeState", "getRootThemeState", "useThemeState", "props", "isRoot", "keys", "disable", "parentId", "useContext", "Error", "name", "theme", "getConfig", "light", "inverses", "useId", "subscribe", "useCallback", "Set", "add", "set", "delete", "propsKey", "getPropsKey", "getSnapshot", "local", "needsUpdate", "current", "size", "rerender", "next", "getNextState", "process", "env", "NODE_ENV", "debug", "console", "groupCollapsed", "info", "groupEnd", "Object", "assign", "globalThis", "time", "state", "useSyncExternalStore", "useIsomorphicLayoutEffect", "scheduleUpdate", "warn", "lastState", "pendingUpdate", "parentState", "isNew", "getNewThemeName", "isSameAsParent", "shouldRerender", "Boolean", "message", "updated", "scheme", "getScheme", "parentInverses", "isInverse", "nextState", "parentName", "shouldAvoidRerender", "scheduleUpdate", "id", "queue", "visited", "Set", "length", "parent", "shift", "children", "listenersByParent", "childId", "has", "add", "push", "forEach", "cb", "allListeners", "get", "validSchemes", "light", "dark", "getScheme", "name", "split", "getNewThemeName", "parentName", "reset", "componentName", "inverse", "debug", "forceUpdate", "Error", "process", "env", "NODE_ENV", "lastPartIndex", "lastIndexOf", "slice", "themes", "getConfig", "parentParts", "lastName", "toLowerCase", "pop", "subNames", "undefined", "filter", "Boolean", "found", "max", "i", "base", "join", "subName", "potential", "scheme", "replace", "RegExp", "getPropsKey", "forceClassName", "hasThemeUpdatingProps", "props"]
|
|
6
6
|
}
|
|
@@ -2,7 +2,6 @@ import "@tamagui/constants";
|
|
|
2
2
|
import { getConfig } from "../config";
|
|
3
3
|
import { getVariable } from "../createVariable";
|
|
4
4
|
import "./doesRootSchemeMatchSystem";
|
|
5
|
-
import { keysToId } from "./useThemeState";
|
|
6
5
|
const cache = /* @__PURE__ */ new Map();
|
|
7
6
|
let curKeys, curProps, curState;
|
|
8
7
|
const emptyObject = {};
|
|
@@ -13,14 +12,7 @@ function getThemeProxied(_props, _state, _keys) {
|
|
|
13
12
|
return cache.get(curState.theme);
|
|
14
13
|
const config = getConfig();
|
|
15
14
|
function track(key) {
|
|
16
|
-
|
|
17
|
-
const realId = keysToId.get(curKeys);
|
|
18
|
-
console.info(
|
|
19
|
-
` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`,
|
|
20
|
-
curKeys,
|
|
21
|
-
globalThis.states?.get(realId + 1)
|
|
22
|
-
);
|
|
23
|
-
}
|
|
15
|
+
curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */ new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`, curKeys));
|
|
24
16
|
}
|
|
25
17
|
const proxied = Object.fromEntries(
|
|
26
18
|
Object.entries(_state.theme).flatMap(([key, value]) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/getThemeProxied.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAsB;AAEtB,SAAS,iBAA6B;AAEtC,SAAS,mBAAmB;AAQ5B,OAA0C;
|
|
4
|
+
"mappings": "AAAA,OAAsB;AAEtB,SAAS,iBAA6B;AAEtC,SAAS,mBAAmB;AAQ5B,OAA0C;AAsC1C,MAAM,QAAwC,oBAAI,IAAI;AAEtD,IAAI,SACA,UACA;AAEJ,MAAM,cAAc,CAAC;AAEd,SAAS,gBAEd,QACA,QACA,OACc;AACd,MAAI,CAAC,QAAQ;AACX,WAAO;AAOT,MAJA,UAAU,OACV,WAAW,QACX,WAAW,QAEP,MAAM,IAAI,SAAS,KAAK;AAE1B,WADgB,MAAM,IAAI,SAAS,KAAK;AAO1C,QAAM,SAAS,UAAU;AAEzB,WAAS,MAAM,KAAa;AAC1B,IAAK,YACA,QAAQ,YACX,QAAQ,UAAU,oBAAI,IAAI,IAE5B,QAAQ,QAAQ,IAAI,GAAG,GACnB,QAAQ,IAAI,aAAa,iBAAiB,SAAS,SACrD,QAAQ,KAAK,2CAAoC,GAAG,IAAI,OAAO;AAAA,EAEnE;AAEA,QAAM,UAAU,OAAO;AAAA,IACrB,OAAO,QAAQ,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,YAAMA,WAAU;AAAA,QACd,GAAG;AAAA,QACH,IAAI,MAAM;AAER,iBAAK,WAAW,wBAEd,MAAM,GAAG,GAEJ,MAAM;AAAA,QACf;AAAA,QACA,IAAI,UAAkB;AACpB,cAAI,CAAC,SAAU;AAEf,gBAAM,SAAS,YAAY,KAAK,GAC1B,EAAE,MAAM,QAAQ,SAAS,IAAI;AA0CnC,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,QACL,CAAC,KAAKA,QAAO;AAAA,QACb,CAAC,IAAI,GAAG,IAAIA,QAAO;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,eAAM,IAAI,OAAO,OAAO,OAAO,GAExB;AACT;",
|
|
5
5
|
"names": ["proxied"]
|
|
6
6
|
}
|
|
@@ -2,7 +2,6 @@ import "@tamagui/constants";
|
|
|
2
2
|
import { getConfig } from "../config.mjs";
|
|
3
3
|
import { getVariable } from "../createVariable.mjs";
|
|
4
4
|
import "./doesRootSchemeMatchSystem.mjs";
|
|
5
|
-
import { keysToId } from "./useThemeState.mjs";
|
|
6
5
|
const cache = /* @__PURE__ */new Map();
|
|
7
6
|
let curKeys, curProps, curState;
|
|
8
7
|
const emptyObject = {};
|
|
@@ -11,10 +10,7 @@ function getThemeProxied(_props, _state, _keys) {
|
|
|
11
10
|
if (curKeys = _keys, curProps = _props, curState = _state, cache.has(curState.theme)) return cache.get(curState.theme);
|
|
12
11
|
const config = getConfig();
|
|
13
12
|
function track(key) {
|
|
14
|
-
|
|
15
|
-
const realId = keysToId.get(curKeys);
|
|
16
|
-
console.info(` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`, curKeys, globalThis.states?.get(realId + 1));
|
|
17
|
-
}
|
|
13
|
+
curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`, curKeys));
|
|
18
14
|
}
|
|
19
15
|
const proxied = Object.fromEntries(Object.entries(_state.theme).flatMap(([key, value]) => {
|
|
20
16
|
const proxied2 = {
|