@tamagui/web 1.124.10 → 1.124.12
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/useThemeState.cjs +47 -26
- package/dist/cjs/hooks/useThemeState.js +31 -22
- package/dist/cjs/hooks/useThemeState.js.map +1 -1
- package/dist/cjs/hooks/useThemeState.native.js +69 -25
- package/dist/cjs/hooks/useThemeState.native.js.map +2 -2
- package/dist/cjs/views/Theme.cjs +11 -7
- package/dist/cjs/views/Theme.js +15 -4
- package/dist/cjs/views/Theme.js.map +1 -1
- package/dist/cjs/views/Theme.native.js +10 -7
- package/dist/cjs/views/Theme.native.js.map +2 -2
- package/dist/esm/hooks/useThemeState.js +31 -22
- package/dist/esm/hooks/useThemeState.js.map +1 -1
- package/dist/esm/hooks/useThemeState.mjs +47 -26
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +69 -25
- package/dist/esm/hooks/useThemeState.native.js.map +2 -2
- package/dist/esm/views/Theme.js +16 -11
- package/dist/esm/views/Theme.js.map +1 -1
- package/dist/esm/views/Theme.mjs +11 -7
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +10 -7
- package/dist/esm/views/Theme.native.js.map +2 -2
- package/package.json +11 -11
- package/src/hooks/useThemeState.ts +87 -44
- package/src/views/Theme.tsx +17 -15
- package/types/hooks/useThemeState.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/Theme.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsB,+BAEtB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["React", "className"]
|
|
6
6
|
}
|
|
@@ -53,7 +53,11 @@ var import_jsx_runtime = require("react/jsx-runtime"), import_constants = requir
|
|
|
53
53
|
Theme.avoidForwardRef = !0;
|
|
54
54
|
function getThemedChildren(themeState, children, props) {
|
|
55
55
|
var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1, stateRef = arguments.length > 4 ? arguments[4] : void 0, { shallow, forceClassName } = props, state = stateRef.current, hasEverThemed = state.hasEverThemed, shouldRenderChildrenWithTheme = hasEverThemed || themeState.isNew || isRoot || (0, import_useThemeState.hasThemeUpdatingProps)(props);
|
|
56
|
-
if (
|
|
56
|
+
if (process.env.NODE_ENV === "development" && props.debug && (children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ThemeDebug.ThemeDebug, {
|
|
57
|
+
themeState,
|
|
58
|
+
themeProps: props,
|
|
59
|
+
children
|
|
60
|
+
})), !shouldRenderChildrenWithTheme)
|
|
57
61
|
return children;
|
|
58
62
|
children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_useThemeState.ThemeStateContext.Provider, {
|
|
59
63
|
value: themeState.id,
|
|
@@ -72,21 +76,20 @@ function getThemedChildren(themeState, children, props) {
|
|
|
72
76
|
})) : child;
|
|
73
77
|
});
|
|
74
78
|
}
|
|
75
|
-
if (process.env.NODE_ENV === "development" && props.debug &&
|
|
79
|
+
if (process.env.NODE_ENV === "development" && props.debug && console.warn(" getThemedChildren", {
|
|
76
80
|
requiresExtraWrapper,
|
|
77
81
|
forceClassName,
|
|
78
82
|
themeState,
|
|
79
83
|
state,
|
|
80
84
|
...getThemeClassNameAndStyle(themeState, props, isRoot)
|
|
81
|
-
}),
|
|
82
|
-
themeState,
|
|
83
|
-
themeProps: props,
|
|
84
|
-
children
|
|
85
|
-
})), forceClassName === !1)
|
|
85
|
+
}), forceClassName === !1)
|
|
86
86
|
return children;
|
|
87
87
|
if (import_constants.isWeb) {
|
|
88
88
|
var { className, style } = getThemeClassNameAndStyle(themeState, props, isRoot);
|
|
89
89
|
if (children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
90
|
+
...process.env.NODE_ENV === "development" && {
|
|
91
|
+
"data-theme-id": themeState.id
|
|
92
|
+
},
|
|
90
93
|
className: `${className} _dsp_contents is_Theme`,
|
|
91
94
|
style,
|
|
92
95
|
children
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/Users/n8/tamagui/code/core/web/src/views/Theme.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,mBAAsB,+BAEtB,
|
|
5
|
-
"names": ["empty", "className", "style", "Theme", "forwardRef", "props", "ref", "disable", "children", "isRoot", "_", "themeState", "useThemeWithState", "disableDirectChildTheme", "finalChildren", "Children", "map", "child", "cloneElement", "React", "only", "stateRef", "useRef", "hasEverThemed", "getThemedChildren", "shallow", "forceClassName", "state", "current", "shouldRenderChildrenWithTheme", "isNew", "hasThemeUpdatingProps", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["empty", "className", "style", "Theme", "forwardRef", "props", "ref", "disable", "children", "isRoot", "_", "themeState", "useThemeWithState", "disableDirectChildTheme", "finalChildren", "Children", "map", "child", "cloneElement", "React", "only", "stateRef", "useRef", "hasEverThemed", "getThemedChildren", "shallow", "forceClassName", "state", "current", "shouldRenderChildrenWithTheme", "isNew", "hasThemeUpdatingProps", "process", "env", "NODE_ENV", "debug", "_jsx", "ThemeDebug", "themeProps", "ThemeStateContext", "Provider", "value", "id", "isInverse", "name", "requiresExtraWrapper", "parentId", "parentState", "getThemeState", "Error", "toArray", "isValidElement", "undefined", "console", "warn", "getThemeClassNameAndStyle", "isWeb", "span", "startsWith", "themeColor", "theme", "variableToString", "color", "maxInverses", "getSetting", "themeClassName", "inverses", "replace", "schemePrefix"]
|
|
6
6
|
}
|
|
@@ -7,14 +7,25 @@ import {
|
|
|
7
7
|
useSyncExternalStore
|
|
8
8
|
} from "react";
|
|
9
9
|
import { getConfig } from "../config";
|
|
10
|
-
const ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map();
|
|
10
|
+
const ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), localStates = /* @__PURE__ */ new Map();
|
|
11
|
+
process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = () => {
|
|
12
|
+
function buildTree(id) {
|
|
13
|
+
const node = states.get(id);
|
|
14
|
+
if (!node) return null;
|
|
15
|
+
const children = Array.from(states.values()).filter((child) => child?.parentId === id).map((child) => buildTree(child.id)).filter(Boolean);
|
|
16
|
+
return { ...node, children };
|
|
17
|
+
}
|
|
18
|
+
rootThemeState && console.info(buildTree(rootThemeState.id));
|
|
19
|
+
});
|
|
11
20
|
let shouldForce = !1;
|
|
12
21
|
const forceUpdateThemes = () => {
|
|
13
22
|
cacheVersion++, shouldForce = !0, allListeners.forEach((cb) => cb());
|
|
14
|
-
}, getThemeState = (id) => states.get(id)
|
|
23
|
+
}, getThemeState = (id) => states.get(id);
|
|
15
24
|
let cacheVersion = 0, themes = null, rootThemeState = null;
|
|
16
25
|
const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot = !1, keys) => {
|
|
17
26
|
const { disable } = props, parentId = useContext(ThemeStateContext);
|
|
27
|
+
if (!parentId && !isRoot)
|
|
28
|
+
throw new Error("No parent?");
|
|
18
29
|
if (disable)
|
|
19
30
|
return states.get(parentId) || {
|
|
20
31
|
id: "",
|
|
@@ -26,15 +37,13 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
26
37
|
(cb) => (listenersByParent[parentId] ||= /* @__PURE__ */ new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
|
|
27
38
|
pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
|
|
28
39
|
}), () => {
|
|
29
|
-
allListeners.delete(id), listenersByParent[parentId].delete(id);
|
|
40
|
+
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), pendingUpdate.delete(id);
|
|
30
41
|
}),
|
|
31
42
|
[id, parentId]
|
|
32
43
|
), propsKey = getPropsKey(props), getSnapshot = () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const next = getSnapshotFrom(
|
|
37
|
-
last,
|
|
44
|
+
let local = localStates.get(id);
|
|
45
|
+
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(
|
|
46
|
+
local,
|
|
38
47
|
props,
|
|
39
48
|
propsKey,
|
|
40
49
|
isRoot,
|
|
@@ -43,7 +52,7 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
43
52
|
needsUpdate,
|
|
44
53
|
pendingUpdate.get(id)
|
|
45
54
|
);
|
|
46
|
-
return
|
|
55
|
+
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;
|
|
47
56
|
};
|
|
48
57
|
process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
|
|
49
58
|
const state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
@@ -53,29 +62,27 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
53
62
|
return;
|
|
54
63
|
}
|
|
55
64
|
propsKey && (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id));
|
|
56
|
-
}, [keys, propsKey]), state
|
|
57
|
-
},
|
|
65
|
+
}, [keys, propsKey]), state;
|
|
66
|
+
}, getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
|
|
58
67
|
const { debug } = props, parentState = states.get(parentId);
|
|
59
68
|
themes || (themes = getConfig().themes);
|
|
60
|
-
const name = !propsKey &&
|
|
69
|
+
const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(
|
|
61
70
|
parentState?.name,
|
|
62
71
|
props,
|
|
63
72
|
pendingUpdate2 === "force" ? !0 : !!needsUpdate
|
|
64
|
-
), isSameAsParent =
|
|
73
|
+
), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (pendingUpdate2 || lastState?.name !== parentState?.name));
|
|
65
74
|
if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
|
|
66
|
-
const message = ` \xB7 useTheme(${id})
|
|
75
|
+
const message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
67
76
|
console.groupCollapsed(message), console.trace({ name, lastState, parentState, props, propsKey, id, isSameAsParent }), console.groupEnd();
|
|
68
77
|
}
|
|
69
|
-
if (
|
|
70
|
-
return parentState;
|
|
78
|
+
if (isSameAsParent)
|
|
79
|
+
return [shouldRerender, { ...parentState, isNew: !1 }];
|
|
71
80
|
if (!name) {
|
|
72
81
|
const next = lastState ?? parentState;
|
|
73
82
|
if (!next)
|
|
74
83
|
throw new Error("No theme and no parent?");
|
|
75
|
-
return
|
|
84
|
+
return shouldRerender ? [!0, { ...parentState || lastState }] : [!1, next];
|
|
76
85
|
}
|
|
77
|
-
if (pendingUpdate2 !== "force" && lastState && lastState.name === name)
|
|
78
|
-
return lastState;
|
|
79
86
|
const scheme = getScheme(name), parentInverses = parentState?.inverses ?? 0, isInverse = parentState && scheme !== parentState.scheme, inverses = parentInverses + (isInverse ? 1 : 0), nextState = {
|
|
80
87
|
id,
|
|
81
88
|
name,
|
|
@@ -84,13 +91,15 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
|
|
|
84
91
|
parentId,
|
|
85
92
|
parentName: parentState?.name,
|
|
86
93
|
inverses,
|
|
87
|
-
isInverse
|
|
94
|
+
isInverse,
|
|
95
|
+
isNew: !0
|
|
88
96
|
};
|
|
89
|
-
isRoot && (rootThemeState = nextState)
|
|
97
|
+
if (isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && lastState.name === name)
|
|
98
|
+
return [!1, nextState];
|
|
90
99
|
const shouldAvoidRerender = pendingUpdate2 !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
|
|
91
100
|
return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(
|
|
92
101
|
` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`
|
|
93
|
-
), console.info({ lastState, needsUpdate, nextState, pendingUpdate: pendingUpdate2 }), console.groupEnd()), shouldAvoidRerender ?
|
|
102
|
+
), console.info({ lastState, needsUpdate, nextState, pendingUpdate: pendingUpdate2 }), console.groupEnd()), shouldAvoidRerender ? [!1, nextState] : [!0, nextState];
|
|
94
103
|
};
|
|
95
104
|
function scheduleUpdate(id) {
|
|
96
105
|
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,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["pendingUpdate", "themes"]
|
|
6
6
|
}
|
|
@@ -7,13 +7,25 @@ const ThemeStateContext = createContext(""),
|
|
|
7
7
|
listenersByParent = {},
|
|
8
8
|
hasRenderedOnce = /* @__PURE__ */new WeakMap(),
|
|
9
9
|
pendingUpdate = /* @__PURE__ */new Map(),
|
|
10
|
-
states = /* @__PURE__ */new Map()
|
|
10
|
+
states = /* @__PURE__ */new Map(),
|
|
11
|
+
localStates = /* @__PURE__ */new Map();
|
|
12
|
+
process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = () => {
|
|
13
|
+
function buildTree(id) {
|
|
14
|
+
const node = states.get(id);
|
|
15
|
+
if (!node) return null;
|
|
16
|
+
const children = Array.from(states.values()).filter(child => child?.parentId === id).map(child => buildTree(child.id)).filter(Boolean);
|
|
17
|
+
return {
|
|
18
|
+
...node,
|
|
19
|
+
children
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
rootThemeState && console.info(buildTree(rootThemeState.id));
|
|
23
|
+
});
|
|
11
24
|
let shouldForce = !1;
|
|
12
25
|
const forceUpdateThemes = () => {
|
|
13
26
|
cacheVersion++, shouldForce = !0, allListeners.forEach(cb => cb());
|
|
14
27
|
},
|
|
15
|
-
getThemeState = id => states.get(id)
|
|
16
|
-
cache = /* @__PURE__ */new Map();
|
|
28
|
+
getThemeState = id => states.get(id);
|
|
17
29
|
let cacheVersion = 0,
|
|
18
30
|
themes = null,
|
|
19
31
|
rootThemeState = null;
|
|
@@ -23,6 +35,7 @@ const getRootThemeState = () => rootThemeState,
|
|
|
23
35
|
disable
|
|
24
36
|
} = props,
|
|
25
37
|
parentId = useContext(ThemeStateContext);
|
|
38
|
+
if (!parentId && !isRoot) throw new Error("No parent?");
|
|
26
39
|
if (disable) return states.get(parentId) || {
|
|
27
40
|
id: "",
|
|
28
41
|
name: "light",
|
|
@@ -33,17 +46,24 @@ const getRootThemeState = () => rootThemeState,
|
|
|
33
46
|
subscribe = useCallback(cb => (listenersByParent[parentId] ||= /* @__PURE__ */new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
|
|
34
47
|
pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
|
|
35
48
|
}), () => {
|
|
36
|
-
allListeners.delete(id), listenersByParent[parentId].delete(id);
|
|
49
|
+
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), pendingUpdate.delete(id);
|
|
37
50
|
}), [id, parentId]),
|
|
38
51
|
propsKey = getPropsKey(props),
|
|
39
52
|
getSnapshot = () => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
53
|
+
let local = localStates.get(id);
|
|
54
|
+
const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : hasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0,
|
|
55
|
+
[rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, pendingUpdate.get(id));
|
|
56
|
+
return pendingUpdate.delete(id), (!local || rerender) && (local = {
|
|
57
|
+
...next
|
|
58
|
+
}, 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({
|
|
59
|
+
props,
|
|
60
|
+
propsKey,
|
|
61
|
+
isRoot,
|
|
62
|
+
parentId,
|
|
63
|
+
local,
|
|
64
|
+
next,
|
|
65
|
+
needsUpdate
|
|
66
|
+
}), console.groupEnd()), Object.assign(local, next), local.id = id, states.set(id, next), local;
|
|
47
67
|
};
|
|
48
68
|
process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
|
|
49
69
|
const state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
@@ -53,21 +73,19 @@ const getRootThemeState = () => rootThemeState,
|
|
|
53
73
|
return;
|
|
54
74
|
}
|
|
55
75
|
propsKey && (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id));
|
|
56
|
-
}, [keys, propsKey]), state
|
|
57
|
-
...state,
|
|
58
|
-
isNew: !0
|
|
59
|
-
} : state;
|
|
76
|
+
}, [keys, propsKey]), state;
|
|
60
77
|
},
|
|
61
|
-
|
|
78
|
+
getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
|
|
62
79
|
const {
|
|
63
80
|
debug
|
|
64
81
|
} = props,
|
|
65
82
|
parentState = states.get(parentId);
|
|
66
83
|
themes || (themes = getConfig().themes);
|
|
67
|
-
const name = !propsKey &&
|
|
68
|
-
isSameAsParent =
|
|
84
|
+
const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate),
|
|
85
|
+
isSameAsParent = parentState && (!name || name === parentState.name),
|
|
86
|
+
shouldRerender = !!(needsUpdate && (pendingUpdate2 || lastState?.name !== parentState?.name));
|
|
69
87
|
if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
|
|
70
|
-
const message = ` \xB7 useTheme(${id})
|
|
88
|
+
const message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
71
89
|
console.groupCollapsed(message), console.trace({
|
|
72
90
|
name,
|
|
73
91
|
lastState,
|
|
@@ -78,15 +96,17 @@ const getRootThemeState = () => rootThemeState,
|
|
|
78
96
|
isSameAsParent
|
|
79
97
|
}), console.groupEnd();
|
|
80
98
|
}
|
|
81
|
-
if (
|
|
99
|
+
if (isSameAsParent) return [shouldRerender, {
|
|
100
|
+
...parentState,
|
|
101
|
+
isNew: !1
|
|
102
|
+
}];
|
|
82
103
|
if (!name) {
|
|
83
104
|
const next = lastState ?? parentState;
|
|
84
105
|
if (!next) throw new Error("No theme and no parent?");
|
|
85
|
-
return
|
|
106
|
+
return shouldRerender ? [!0, {
|
|
86
107
|
...(parentState || lastState)
|
|
87
|
-
} : next;
|
|
108
|
+
}] : [!1, next];
|
|
88
109
|
}
|
|
89
|
-
if (pendingUpdate2 !== "force" && lastState && lastState.name === name) return lastState;
|
|
90
110
|
const scheme = getScheme(name),
|
|
91
111
|
parentInverses = parentState?.inverses ?? 0,
|
|
92
112
|
isInverse = parentState && scheme !== parentState.scheme,
|
|
@@ -99,16 +119,17 @@ const getRootThemeState = () => rootThemeState,
|
|
|
99
119
|
parentId,
|
|
100
120
|
parentName: parentState?.name,
|
|
101
121
|
inverses,
|
|
102
|
-
isInverse
|
|
122
|
+
isInverse,
|
|
123
|
+
isNew: !0
|
|
103
124
|
};
|
|
104
|
-
isRoot && (rootThemeState = nextState);
|
|
125
|
+
if (isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && lastState.name === name) return [!1, nextState];
|
|
105
126
|
const shouldAvoidRerender = pendingUpdate2 !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
|
|
106
127
|
return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`), console.info({
|
|
107
128
|
lastState,
|
|
108
129
|
needsUpdate,
|
|
109
130
|
nextState,
|
|
110
131
|
pendingUpdate: pendingUpdate2
|
|
111
|
-
}), console.groupEnd()), shouldAvoidRerender ?
|
|
132
|
+
}), console.groupEnd()), shouldAvoidRerender ? [!1, nextState] : [!0, nextState];
|
|
112
133
|
};
|
|
113
134
|
function scheduleUpdate(id) {
|
|
114
135
|
const queue = [id],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useCallback","useContext","useId","useSyncExternalStore","getConfig","ThemeStateContext","keysToId","WeakMap","allListeners","Map","listenersByParent","hasRenderedOnce","pendingUpdate","states","shouldForce","forceUpdateThemes","cacheVersion","forEach","cb","getThemeState","id","get","cache","themes","rootThemeState","getRootThemeState","useThemeState","props","isRoot","keys","disable","parentId","name","theme","light","inverses","subscribe","Set","add","set","delete","propsKey","getPropsKey","getSnapshot","last","needsUpdate","current","size","parentState","cacheKey","has","next","getSnapshotFrom","process","env","NODE_ENV","debug","console","warn","globalThis","time","state","scheduleUpdate","isNew","lastState","pendingUpdate2","getNewThemeName","isSameAsParent","message","groupCollapsed","trace","groupEnd","Error","scheme","getScheme","parentInverses","isInverse","nextState","parentName","shouldAvoidRerender","info","Object","assign","queue","visited","length","parent","shift","children","childId","push","validSchemes","dark","split","reset","componentName","inverse","forceUpdate","lastPartIndex","lastIndexOf","slice","themes2","parentParts","lastName","toLowerCase","pop","subNames","filter","Boolean","found","max","i","base","join","subName","potential","replace","RegExp","forceClassName","hasThemeUpdatingProps"],"sources":["../../../src/hooks/useThemeState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useCallback","useContext","useId","useSyncExternalStore","getConfig","ThemeStateContext","keysToId","WeakMap","allListeners","Map","listenersByParent","hasRenderedOnce","pendingUpdate","states","localStates","process","env","NODE_ENV","globalThis","getTamaguiThemes","buildTree","id","node","get","children","Array","from","values","filter","child","parentId","map","Boolean","rootThemeState","console","info","shouldForce","forceUpdateThemes","cacheVersion","forEach","cb","getThemeState","themes","getRootThemeState","useThemeState","props","isRoot","keys","disable","Error","name","theme","light","inverses","subscribe","Set","add","set","delete","propsKey","getPropsKey","getSnapshot","local","needsUpdate","current","size","rerender","next","getNextState","debug","groupCollapsed","groupEnd","Object","assign","time","state","warn","scheduleUpdate","lastState","pendingUpdate2","parentState","isNew","getNewThemeName","isSameAsParent","shouldRerender","message","trace","scheme","getScheme","parentInverses","isInverse","nextState","parentName","shouldAvoidRerender","queue","visited","length","parent","shift","childId","has","push","validSchemes","dark","split","reset","componentName","inverse","forceUpdate","lastPartIndex","lastIndexOf","slice","themes2","parentParts","lastName","toLowerCase","pop","subNames","found","max","i","base","join","subName","potential","replace","RegExp","forceClassName","hasThemeUpdatingProps"],"sources":["../../../src/hooks/useThemeState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
2
|
import { createContext, useCallback, useContext, useId, useSyncExternalStore } from "react";
|
|
3
3
|
import { getConfig } from "../config";
|
|
4
|
-
var ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(),
|
|
4
|
+
var ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), localStates = /* @__PURE__ */ new Map();
|
|
5
|
+
process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = function() {
|
|
6
|
+
function buildTree(id) {
|
|
7
|
+
var node = states.get(id);
|
|
8
|
+
if (!node) return null;
|
|
9
|
+
var children = Array.from(states.values()).filter(function(child) {
|
|
10
|
+
return child?.parentId === id;
|
|
11
|
+
}).map(function(child) {
|
|
12
|
+
return buildTree(child.id);
|
|
13
|
+
}).filter(Boolean);
|
|
14
|
+
return {
|
|
15
|
+
...node,
|
|
16
|
+
children
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
rootThemeState && console.info(buildTree(rootThemeState.id));
|
|
20
|
+
});
|
|
21
|
+
var shouldForce = !1, forceUpdateThemes = function() {
|
|
5
22
|
cacheVersion++, shouldForce = !0, allListeners.forEach(function(cb) {
|
|
6
23
|
return cb();
|
|
7
24
|
});
|
|
8
25
|
}, getThemeState = function(id) {
|
|
9
26
|
return states.get(id);
|
|
10
|
-
},
|
|
27
|
+
}, cacheVersion = 0, themes = null, rootThemeState = null, getRootThemeState = function() {
|
|
11
28
|
return rootThemeState;
|
|
12
29
|
}, useThemeState = function(props) {
|
|
13
30
|
var isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, keys = arguments.length > 2 ? arguments[2] : void 0, { disable } = props, parentId = useContext(ThemeStateContext);
|
|
31
|
+
if (!parentId && !isRoot)
|
|
32
|
+
throw new Error("No parent?");
|
|
14
33
|
if (disable)
|
|
15
34
|
return states.get(parentId) || {
|
|
16
35
|
id: "",
|
|
@@ -23,17 +42,24 @@ var ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMa
|
|
|
23
42
|
return (_listenersByParent = listenersByParent)[_parentId = parentId] || (_listenersByParent[_parentId] = /* @__PURE__ */ new Set()), listenersByParent[parentId].add(id), allListeners.set(id, function() {
|
|
24
43
|
pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
|
|
25
44
|
}), function() {
|
|
26
|
-
allListeners.delete(id), listenersByParent[parentId].delete(id);
|
|
45
|
+
allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), pendingUpdate.delete(id);
|
|
27
46
|
};
|
|
28
47
|
}, [
|
|
29
48
|
id,
|
|
30
49
|
parentId
|
|
31
50
|
]), propsKey = getPropsKey(props), getSnapshot = function() {
|
|
32
|
-
var _keys_current, _props_needsUpdate,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
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));
|
|
52
|
+
return pendingUpdate.delete(id), (!local || rerender) && (local = {
|
|
53
|
+
...next
|
|
54
|
+
}, 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({
|
|
55
|
+
props,
|
|
56
|
+
propsKey,
|
|
57
|
+
isRoot,
|
|
58
|
+
parentId,
|
|
59
|
+
local,
|
|
60
|
+
next,
|
|
61
|
+
needsUpdate
|
|
62
|
+
}), console.groupEnd()), Object.assign(local, next), local.id = id, states.set(id, next), local;
|
|
37
63
|
};
|
|
38
64
|
process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
|
|
39
65
|
var state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
@@ -52,34 +78,41 @@ var ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMa
|
|
|
52
78
|
}, [
|
|
53
79
|
keys,
|
|
54
80
|
propsKey
|
|
55
|
-
]), state
|
|
56
|
-
|
|
57
|
-
isNew: !0
|
|
58
|
-
} : state;
|
|
59
|
-
}, getSnapshotFrom = function(lastState, props, propsKey) {
|
|
81
|
+
]), state;
|
|
82
|
+
}, getNextState = function(lastState, props, propsKey) {
|
|
60
83
|
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, pendingUpdate2 = arguments.length > 7 ? arguments[7] : void 0, { debug } = props, parentState = states.get(parentId);
|
|
61
84
|
themes || (themes = getConfig().themes);
|
|
62
|
-
var name = !propsKey &&
|
|
85
|
+
var name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (pendingUpdate2 || lastState?.name !== parentState?.name));
|
|
63
86
|
if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
|
|
64
|
-
var message = ` \xB7 useTheme(${id})
|
|
87
|
+
var message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
65
88
|
console.info(message);
|
|
66
89
|
}
|
|
67
|
-
if (
|
|
68
|
-
return
|
|
90
|
+
if (isSameAsParent)
|
|
91
|
+
return [
|
|
92
|
+
shouldRerender,
|
|
93
|
+
{
|
|
94
|
+
...parentState,
|
|
95
|
+
isNew: !1
|
|
96
|
+
}
|
|
97
|
+
];
|
|
69
98
|
if (!name) {
|
|
70
99
|
var next = lastState ?? parentState;
|
|
71
100
|
if (!next)
|
|
72
101
|
throw new Error("No theme and no parent?");
|
|
73
|
-
if (
|
|
102
|
+
if (shouldRerender) {
|
|
74
103
|
var updated = {
|
|
75
104
|
...parentState || lastState
|
|
76
105
|
};
|
|
77
|
-
return
|
|
106
|
+
return [
|
|
107
|
+
!0,
|
|
108
|
+
updated
|
|
109
|
+
];
|
|
78
110
|
}
|
|
79
|
-
return
|
|
111
|
+
return [
|
|
112
|
+
!1,
|
|
113
|
+
next
|
|
114
|
+
];
|
|
80
115
|
}
|
|
81
|
-
if (pendingUpdate2 !== "force" && lastState && lastState.name === name)
|
|
82
|
-
return lastState;
|
|
83
116
|
var scheme = getScheme(name), _parentState_inverses, parentInverses = (_parentState_inverses = parentState?.inverses) !== null && _parentState_inverses !== void 0 ? _parentState_inverses : 0, isInverse = parentState && scheme !== parentState.scheme, inverses = parentInverses + (isInverse ? 1 : 0), nextState = {
|
|
84
117
|
id,
|
|
85
118
|
name,
|
|
@@ -88,16 +121,27 @@ var ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMa
|
|
|
88
121
|
parentId,
|
|
89
122
|
parentName: parentState?.name,
|
|
90
123
|
inverses,
|
|
91
|
-
isInverse
|
|
124
|
+
isInverse,
|
|
125
|
+
isNew: !0
|
|
92
126
|
};
|
|
93
|
-
isRoot && (rootThemeState = nextState)
|
|
127
|
+
if (isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && lastState.name === name)
|
|
128
|
+
return [
|
|
129
|
+
!1,
|
|
130
|
+
nextState
|
|
131
|
+
];
|
|
94
132
|
var shouldAvoidRerender = pendingUpdate2 !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
|
|
95
133
|
return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`), console.info({
|
|
96
134
|
lastState,
|
|
97
135
|
needsUpdate,
|
|
98
136
|
nextState,
|
|
99
137
|
pendingUpdate: pendingUpdate2
|
|
100
|
-
}), console.groupEnd()), shouldAvoidRerender ?
|
|
138
|
+
}), console.groupEnd()), shouldAvoidRerender ? [
|
|
139
|
+
!1,
|
|
140
|
+
nextState
|
|
141
|
+
] : [
|
|
142
|
+
!0,
|
|
143
|
+
nextState
|
|
144
|
+
];
|
|
101
145
|
};
|
|
102
146
|
function scheduleUpdate(id) {
|
|
103
147
|
for (var queue = [
|