@tamagui/web 1.123.17 → 1.124.0
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/Tamagui.cjs +1 -6
- package/dist/cjs/Tamagui.js +1 -5
- package/dist/cjs/Tamagui.js.map +1 -1
- package/dist/cjs/Tamagui.native.js +2 -8
- package/dist/cjs/Tamagui.native.js.map +2 -2
- package/dist/cjs/createComponent.cjs +9 -13
- package/dist/cjs/createComponent.js +10 -8
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +17 -19
- package/dist/cjs/createComponent.native.js.map +2 -2
- package/dist/cjs/helpers/createShallowSetState.cjs +7 -4
- package/dist/cjs/helpers/createShallowSetState.js +12 -6
- package/dist/cjs/helpers/createShallowSetState.js.map +1 -1
- package/dist/cjs/helpers/createShallowSetState.native.js +10 -4
- package/dist/cjs/helpers/createShallowSetState.native.js.map +2 -2
- package/dist/cjs/hooks/{shouldDeoptDueToParentScheme.cjs → doesRootSchemeMatchSystem.cjs} +5 -5
- package/dist/cjs/hooks/{shouldDeoptDueToParentScheme.js → doesRootSchemeMatchSystem.js} +6 -6
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.js.map +6 -0
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js +30 -0
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js.map +6 -0
- package/dist/cjs/hooks/getThemeProxied.cjs +58 -0
- package/dist/cjs/hooks/getThemeProxied.js +53 -0
- package/dist/cjs/hooks/getThemeProxied.js.map +6 -0
- package/dist/cjs/hooks/getThemeProxied.native.js +76 -0
- package/dist/cjs/hooks/getThemeProxied.native.js.map +6 -0
- package/dist/cjs/hooks/useComponentState.cjs +16 -16
- package/dist/cjs/hooks/useComponentState.js +22 -15
- package/dist/cjs/hooks/useComponentState.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.native.js +15 -15
- package/dist/cjs/hooks/useComponentState.native.js.map +2 -2
- package/dist/cjs/hooks/useProps.cjs +2 -2
- package/dist/cjs/hooks/useProps.js +2 -2
- package/dist/cjs/hooks/useProps.js.map +1 -1
- package/dist/cjs/hooks/useProps.native.js +2 -2
- package/dist/cjs/hooks/useProps.native.js.map +2 -2
- package/dist/cjs/hooks/useTheme.cjs +10 -208
- package/dist/cjs/hooks/useTheme.js +7 -207
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/hooks/useTheme.native.js +8 -252
- package/dist/cjs/hooks/useTheme.native.js.map +2 -2
- package/dist/cjs/hooks/useThemeName.cjs +15 -27
- package/dist/cjs/hooks/useThemeName.js +6 -20
- package/dist/cjs/hooks/useThemeName.js.map +2 -2
- package/dist/cjs/hooks/useThemeName.native.js +16 -22
- package/dist/cjs/hooks/useThemeName.native.js.map +2 -2
- package/dist/cjs/hooks/useThemeState.cjs +187 -0
- package/dist/cjs/hooks/useThemeState.js +159 -0
- package/dist/cjs/hooks/useThemeState.js.map +6 -0
- package/dist/cjs/hooks/useThemeState.native.js +206 -0
- package/dist/cjs/hooks/useThemeState.native.js.map +6 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +3 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +81 -85
- package/dist/cjs/views/Theme.js +44 -51
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/cjs/views/Theme.native.js +58 -58
- package/dist/cjs/views/Theme.native.js.map +2 -2
- package/dist/cjs/views/ThemeDebug.cjs +21 -43
- package/dist/cjs/views/ThemeDebug.js +18 -38
- package/dist/cjs/views/ThemeDebug.js.map +2 -2
- package/dist/cjs/views/ThemeProvider.cjs +1 -1
- package/dist/cjs/views/ThemeProvider.js +1 -1
- package/dist/cjs/views/ThemeProvider.js.map +1 -1
- package/dist/cjs/views/ThemeProvider.native.js +1 -1
- package/dist/cjs/views/ThemeProvider.native.js.map +2 -2
- package/dist/esm/Tamagui.js +0 -5
- package/dist/esm/Tamagui.js.map +1 -1
- package/dist/esm/Tamagui.mjs +0 -5
- package/dist/esm/Tamagui.mjs.map +1 -1
- package/dist/esm/Tamagui.native.js +1 -8
- package/dist/esm/Tamagui.native.js.map +2 -2
- package/dist/esm/createComponent.js +9 -8
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.mjs +9 -13
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +16 -19
- package/dist/esm/createComponent.native.js.map +2 -2
- package/dist/esm/helpers/createShallowSetState.js +13 -7
- package/dist/esm/helpers/createShallowSetState.js.map +1 -1
- package/dist/esm/helpers/createShallowSetState.mjs +8 -5
- package/dist/esm/helpers/createShallowSetState.mjs.map +1 -1
- package/dist/esm/helpers/createShallowSetState.native.js +11 -5
- package/dist/esm/helpers/createShallowSetState.native.js.map +2 -2
- package/dist/esm/hooks/doesRootSchemeMatchSystem.js +7 -0
- package/dist/esm/hooks/doesRootSchemeMatchSystem.js.map +6 -0
- package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs +5 -0
- package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs.map +1 -0
- package/dist/esm/hooks/doesRootSchemeMatchSystem.native.js +10 -0
- package/dist/esm/hooks/doesRootSchemeMatchSystem.native.js.map +6 -0
- package/dist/esm/hooks/getThemeProxied.js +40 -0
- package/dist/esm/hooks/getThemeProxied.js.map +6 -0
- package/dist/esm/hooks/getThemeProxied.mjs +35 -0
- package/dist/esm/hooks/getThemeProxied.mjs.map +1 -0
- package/dist/esm/hooks/getThemeProxied.native.js +59 -0
- package/dist/esm/hooks/getThemeProxied.native.js.map +6 -0
- package/dist/esm/hooks/useComponentState.js +22 -15
- package/dist/esm/hooks/useComponentState.js.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +16 -16
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +15 -15
- package/dist/esm/hooks/useComponentState.native.js.map +2 -2
- package/dist/esm/hooks/useProps.js +2 -2
- package/dist/esm/hooks/useProps.js.map +1 -1
- package/dist/esm/hooks/useProps.mjs +2 -2
- package/dist/esm/hooks/useProps.mjs.map +1 -1
- package/dist/esm/hooks/useProps.native.js +2 -2
- package/dist/esm/hooks/useProps.native.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +9 -220
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/hooks/useTheme.mjs +10 -205
- package/dist/esm/hooks/useTheme.mjs.map +1 -1
- package/dist/esm/hooks/useTheme.native.js +11 -257
- package/dist/esm/hooks/useTheme.native.js.map +2 -2
- package/dist/esm/hooks/useThemeName.js +4 -12
- package/dist/esm/hooks/useThemeName.js.map +2 -2
- package/dist/esm/hooks/useThemeName.mjs +11 -12
- package/dist/esm/hooks/useThemeName.mjs.map +1 -1
- package/dist/esm/hooks/useThemeName.native.js +15 -14
- package/dist/esm/hooks/useThemeName.native.js.map +2 -2
- package/dist/esm/hooks/useThemeState.js +151 -0
- package/dist/esm/hooks/useThemeState.js.map +6 -0
- package/dist/esm/hooks/useThemeState.mjs +159 -0
- package/dist/esm/hooks/useThemeState.mjs.map +1 -0
- package/dist/esm/hooks/useThemeState.native.js +182 -0
- package/dist/esm/hooks/useThemeState.native.js.map +6 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +2 -2
- package/dist/esm/views/TamaguiProvider.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/Theme.js +57 -54
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/esm/views/Theme.mjs +81 -85
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +61 -61
- package/dist/esm/views/Theme.native.js.map +2 -2
- package/dist/esm/views/ThemeDebug.js +16 -29
- package/dist/esm/views/ThemeDebug.js.map +1 -1
- package/dist/esm/views/ThemeDebug.mjs +16 -27
- package/dist/esm/views/ThemeDebug.mjs.map +1 -1
- package/dist/esm/views/ThemeProvider.js +2 -2
- package/dist/esm/views/ThemeProvider.js.map +1 -1
- package/dist/esm/views/ThemeProvider.mjs +2 -2
- package/dist/esm/views/ThemeProvider.mjs.map +1 -1
- package/dist/esm/views/ThemeProvider.native.js +2 -2
- package/dist/esm/views/ThemeProvider.native.js.map +2 -2
- package/package.json +11 -11
- package/src/Tamagui.ts +0 -6
- package/src/createComponent.tsx +19 -28
- package/src/helpers/createShallowSetState.tsx +17 -8
- package/src/hooks/doesRootSchemeMatchSystem.native.ts +7 -0
- package/src/hooks/doesRootSchemeMatchSystem.ts +4 -0
- package/src/hooks/getThemeProxied.ts +165 -0
- package/src/hooks/useComponentState.ts +26 -21
- package/src/hooks/useProps.tsx +2 -2
- package/src/hooks/useTheme.tsx +22 -633
- package/src/hooks/useThemeName.tsx +6 -18
- package/src/hooks/useThemeState.ts +341 -0
- package/src/index.ts +1 -0
- package/src/types.tsx +2 -2
- package/src/views/TamaguiProvider.tsx +1 -1
- package/src/views/Theme.tsx +129 -132
- package/src/views/ThemeDebug.native.tsx +2 -2
- package/src/views/ThemeDebug.tsx +17 -39
- package/src/views/ThemeProvider.tsx +2 -2
- package/types/Tamagui.d.ts +0 -2
- package/types/Tamagui.d.ts.map +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/createShallowSetState.d.ts +1 -1
- package/types/helpers/createShallowSetState.d.ts.map +1 -1
- package/types/hooks/doesRootSchemeMatchSystem.d.ts +2 -0
- package/types/hooks/doesRootSchemeMatchSystem.d.ts.map +1 -0
- package/types/hooks/doesRootSchemeMatchSystem.native.d.ts +2 -0
- package/types/hooks/doesRootSchemeMatchSystem.native.d.ts.map +1 -0
- package/types/hooks/getThemeProxied.d.ts +25 -0
- package/types/hooks/getThemeProxied.d.ts.map +1 -0
- package/types/hooks/useComponentState.d.ts.map +1 -1
- package/types/hooks/useConfiguration.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +9 -36
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/hooks/useThemeName.d.ts +1 -3
- package/types/hooks/useThemeName.d.ts.map +1 -1
- package/types/hooks/useThemeState.d.ts +22 -0
- package/types/hooks/useThemeState.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +2 -2
- package/types/types.d.ts.map +1 -1
- package/types/views/Theme.d.ts +3 -3
- package/types/views/Theme.d.ts.map +1 -1
- package/types/views/ThemeDebug.d.ts +2 -2
- package/types/views/ThemeDebug.d.ts.map +1 -1
- package/types/views/ThemeDebug.native.d.ts +2 -2
- package/types/views/ThemeDebug.native.d.ts.map +1 -1
- package/dist/cjs/helpers/ThemeManager.cjs +0 -202
- package/dist/cjs/helpers/ThemeManager.js +0 -183
- package/dist/cjs/helpers/ThemeManager.js.map +0 -6
- package/dist/cjs/helpers/ThemeManager.native.js +0 -282
- package/dist/cjs/helpers/ThemeManager.native.js.map +0 -6
- package/dist/cjs/helpers/ThemeManagerContext.cjs +0 -38
- package/dist/cjs/helpers/ThemeManagerContext.js +0 -30
- package/dist/cjs/helpers/ThemeManagerContext.js.map +0 -6
- package/dist/cjs/helpers/ThemeManagerContext.native.js +0 -34
- package/dist/cjs/helpers/ThemeManagerContext.native.js.map +0 -6
- package/dist/cjs/hooks/shouldDeoptDueToParentScheme.js.map +0 -6
- package/dist/cjs/hooks/shouldDeoptDueToParentScheme.native.js +0 -50
- package/dist/cjs/hooks/shouldDeoptDueToParentScheme.native.js.map +0 -6
- package/dist/esm/helpers/ThemeManager.js +0 -169
- package/dist/esm/helpers/ThemeManager.js.map +0 -6
- package/dist/esm/helpers/ThemeManager.mjs +0 -177
- package/dist/esm/helpers/ThemeManager.mjs.map +0 -1
- package/dist/esm/helpers/ThemeManager.native.js +0 -261
- package/dist/esm/helpers/ThemeManager.native.js.map +0 -6
- package/dist/esm/helpers/ThemeManagerContext.js +0 -6
- package/dist/esm/helpers/ThemeManagerContext.js.map +0 -6
- package/dist/esm/helpers/ThemeManagerContext.mjs +0 -4
- package/dist/esm/helpers/ThemeManagerContext.mjs.map +0 -1
- package/dist/esm/helpers/ThemeManagerContext.native.js +0 -6
- package/dist/esm/helpers/ThemeManagerContext.native.js.map +0 -6
- package/dist/esm/hooks/shouldDeoptDueToParentScheme.js +0 -7
- package/dist/esm/hooks/shouldDeoptDueToParentScheme.js.map +0 -6
- package/dist/esm/hooks/shouldDeoptDueToParentScheme.mjs +0 -5
- package/dist/esm/hooks/shouldDeoptDueToParentScheme.mjs.map +0 -1
- package/dist/esm/hooks/shouldDeoptDueToParentScheme.native.js +0 -29
- package/dist/esm/hooks/shouldDeoptDueToParentScheme.native.js.map +0 -6
- package/src/helpers/ThemeManager.tsx +0 -405
- package/src/helpers/ThemeManagerContext.tsx +0 -4
- package/src/hooks/shouldDeoptDueToParentScheme.native.tsx +0 -37
- package/src/hooks/shouldDeoptDueToParentScheme.tsx +0 -6
- package/types/helpers/ThemeManager.d.ts +0 -45
- package/types/helpers/ThemeManager.d.ts.map +0 -1
- package/types/helpers/ThemeManagerContext.d.ts +0 -4
- package/types/helpers/ThemeManagerContext.d.ts.map +0 -1
- package/types/hooks/shouldDeoptDueToParentScheme.d.ts +0 -3
- package/types/hooks/shouldDeoptDueToParentScheme.d.ts.map +0 -1
- package/types/hooks/shouldDeoptDueToParentScheme.native.d.ts +0 -3
- package/types/hooks/shouldDeoptDueToParentScheme.native.d.ts.map +0 -1
|
@@ -14,222 +14,22 @@ var __export = (target, all) => {
|
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
15
|
var useTheme_exports = {};
|
|
16
16
|
__export(useTheme_exports, {
|
|
17
|
-
activeThemeManagers: () => activeThemeManagers,
|
|
18
|
-
getThemeManager: () => getThemeManager,
|
|
19
|
-
useChangeThemeEffect: () => useChangeThemeEffect,
|
|
20
17
|
useTheme: () => useTheme,
|
|
21
18
|
useThemeWithState: () => useThemeWithState
|
|
22
19
|
});
|
|
23
20
|
module.exports = __toCommonJS(useTheme_exports);
|
|
24
|
-
var
|
|
25
|
-
const
|
|
26
|
-
const [
|
|
21
|
+
var import_react = require("react"), import_getThemeProxied = require("./getThemeProxied"), import_useThemeState = require("./useThemeState");
|
|
22
|
+
const useTheme = (props = {}) => {
|
|
23
|
+
const [theme] = useThemeWithState(props);
|
|
27
24
|
return theme;
|
|
28
|
-
}, useThemeWithState = (props) => {
|
|
29
|
-
const keys = (0, import_react.useRef)(null),
|
|
30
|
-
process.env.NODE_ENV === "development" &&
|
|
31
|
-
const { themeManager, state } = changedThemeState;
|
|
32
|
-
process.env.NODE_ENV === "development" && (state?.theme || process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.error(
|
|
25
|
+
}, useThemeWithState = (props, isRoot = !1) => {
|
|
26
|
+
const keys = (0, import_react.useRef)(null), themeState = (0, import_useThemeState.useThemeState)(props, isRoot, keys);
|
|
27
|
+
return process.env.NODE_ENV === "development" && (themeState?.theme || process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.error(
|
|
33
28
|
`[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(
|
|
34
29
|
props
|
|
35
30
|
)}).
|
|
36
31
|
|
|
37
32
|
If this is intended and you are using Tamagui without any themes, you can disable this warning by setting the environment variable TAMAGUI_DISABLE_NO_THEME_WARNING=1`
|
|
38
|
-
));
|
|
39
|
-
const themeProxied = getThemeProxied(props, state, keys, themeManager);
|
|
40
|
-
return process.env.NODE_ENV === "development" && props.debug === "verbose" && (console.groupCollapsed(` \u{1F539} [${themeManager?.id}] useTheme =>`, state?.name), console.info(
|
|
41
|
-
"returning state",
|
|
42
|
-
changedThemeState.state,
|
|
43
|
-
changedThemeState.isNewTheme,
|
|
44
|
-
"from props",
|
|
45
|
-
props
|
|
46
|
-
), console.groupEnd()), [changedThemeState, themeProxied];
|
|
47
|
-
}, emptyObject = {}, ProxiedThemes = /* @__PURE__ */ new Map();
|
|
48
|
-
let curKeys, curProps, curThemeManger;
|
|
49
|
-
function getThemeProxied(_props, state, _keys, _themeManager) {
|
|
50
|
-
const theme = state?.theme;
|
|
51
|
-
if (!theme || !_themeManager)
|
|
52
|
-
return emptyObject;
|
|
53
|
-
if (curKeys = _keys, curProps = _props, curThemeManger = _themeManager, ProxiedThemes.has(theme))
|
|
54
|
-
return ProxiedThemes.get(theme);
|
|
55
|
-
const { name, scheme } = state, config = (0, import_config.getConfig)();
|
|
56
|
-
function track(key) {
|
|
57
|
-
curKeys && (curKeys.current || (curKeys.current = []), curKeys.current.push(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`));
|
|
58
|
-
}
|
|
59
|
-
const proxied = Object.fromEntries(
|
|
60
|
-
Object.entries(theme).flatMap(([key, value]) => {
|
|
61
|
-
const proxied2 = {
|
|
62
|
-
...value,
|
|
63
|
-
get val() {
|
|
64
|
-
return globalThis.tamaguiAvoidTracking || track(key), value.val;
|
|
65
|
-
},
|
|
66
|
-
get(platform) {
|
|
67
|
-
return (0, import_createVariable.getVariable)(value);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
return [
|
|
71
|
-
[key, proxied2],
|
|
72
|
-
[`$${key}`, proxied2]
|
|
73
|
-
];
|
|
74
|
-
})
|
|
75
|
-
);
|
|
76
|
-
return ProxiedThemes.set(theme, proxied), proxied;
|
|
77
|
-
}
|
|
78
|
-
const activeThemeManagers = /* @__PURE__ */ new Set(), _uidToManager = /* @__PURE__ */ new WeakMap(), _idToUID = {}, getId = (id) => _idToUID[id], getThemeManager = (id) => _uidToManager.get(getId(id)), registerThemeManager = (t) => {
|
|
79
|
-
if (!_idToUID[t.id]) {
|
|
80
|
-
const id = _idToUID[t.id] = {};
|
|
81
|
-
_uidToManager.set(id, t);
|
|
82
|
-
}
|
|
83
|
-
}, ogLog = console.error, preventWarnSetState = process.env.NODE_ENV === "production" ? ogLog : (
|
|
84
|
-
// temporary fix for logs, they are harmless in that i've tried to rewrite this
|
|
85
|
-
// a few times using the "right" ways, but they are always slower. maybe skill issue
|
|
86
|
-
(a, ...args) => {
|
|
87
|
-
if (!(typeof a == "string" && a.includes("Cannot update a component")))
|
|
88
|
-
return ogLog(a, ...args);
|
|
89
|
-
}
|
|
90
|
-
);
|
|
91
|
-
function getShouldUpdateTheme(props, parentManager, keys, themeState, nextState, forceShouldChange = !1) {
|
|
92
|
-
if (import_constants.isServer || !forceShouldChange && !keys?.current && (!themeState || !themeState.isNewTheme) && !(0, import_ThemeManager.getHasThemeUpdatingProps)(props))
|
|
93
|
-
return;
|
|
94
|
-
const next = nextState || themeState?.themeManager?.getState(props, parentManager);
|
|
95
|
-
if (forceShouldChange)
|
|
96
|
-
return next;
|
|
97
|
-
if (!(!next || next.theme === themeState?.state?.theme))
|
|
98
|
-
return next;
|
|
99
|
-
}
|
|
100
|
-
const useChangeThemeEffect = (props, isRoot = !1, keys) => {
|
|
101
|
-
const { disable } = props, parentManager = (0, import_react.useContext)(import_ThemeManagerContext.ThemeManagerContext), shouldAlwaysUpdate = props.needsUpdate?.() === !0 ? !0 : void 0;
|
|
102
|
-
if (!isRoot && !parentManager || disable)
|
|
103
|
-
return {
|
|
104
|
-
isNewTheme: !1,
|
|
105
|
-
state: parentManager?.state,
|
|
106
|
-
themeManager: parentManager
|
|
107
|
-
};
|
|
108
|
-
const [themeState, setThemeState] = (0, import_react.useState)(createState), { state, mounted, isNewTheme, themeManager, prevState } = themeState, isInversingOnMount = !!(!themeState.mounted && props.inverse);
|
|
109
|
-
if (import_constants.isServer || ((0, import_react.useLayoutEffect)(() => {
|
|
110
|
-
themeManager && state && prevState && state !== prevState && themeManager.notify();
|
|
111
|
-
}, [state]), (0, import_react.useEffect)(() => {
|
|
112
|
-
if (!themeManager) return;
|
|
113
|
-
if (props.inverse && !mounted) {
|
|
114
|
-
setThemeState((prev) => createState({
|
|
115
|
-
...prev,
|
|
116
|
-
mounted: !0
|
|
117
|
-
}));
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
(isNewTheme || isRoot) && (activeThemeManagers.add(themeManager), process.env.NODE_ENV === "development" && isRoot && (globalThis.TamaguiRootThemeManager ||= themeManager));
|
|
121
|
-
const updated = getShouldUpdateTheme(
|
|
122
|
-
props,
|
|
123
|
-
parentManager,
|
|
124
|
-
keys,
|
|
125
|
-
themeState,
|
|
126
|
-
void 0,
|
|
127
|
-
shouldAlwaysUpdate
|
|
128
|
-
);
|
|
129
|
-
updated && setThemeState((prev) => createState(prev, void 0, updated));
|
|
130
|
-
const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
|
|
131
|
-
forced && setThemeState((prev) => createState(prev, forced !== "self"));
|
|
132
|
-
}, !0), disposeChangeListener = parentManager?.onChangeTheme(
|
|
133
|
-
(name, manager, forced) => {
|
|
134
|
-
const force = forced || (import_constants.isServer ? void 0 : keys?.current ? !0 : void 0) || props.deopt || void 0, shouldTryUpdate = force ?? !!(keys?.current || isNewTheme);
|
|
135
|
-
process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info(" \u{1F538} onChange", {
|
|
136
|
-
id: themeManager.id,
|
|
137
|
-
force,
|
|
138
|
-
shouldTryUpdate,
|
|
139
|
-
props,
|
|
140
|
-
name,
|
|
141
|
-
keys
|
|
142
|
-
}), shouldTryUpdate && setThemeState((prev) => createState(prev, !0));
|
|
143
|
-
},
|
|
144
|
-
themeManager.id
|
|
145
|
-
);
|
|
146
|
-
return () => {
|
|
147
|
-
selfListenerDispose(), disposeChangeListener?.(), isNewTheme && activeThemeManagers.delete(themeManager);
|
|
148
|
-
};
|
|
149
|
-
}, [
|
|
150
|
-
themeManager,
|
|
151
|
-
parentManager,
|
|
152
|
-
isNewTheme,
|
|
153
|
-
props.componentName,
|
|
154
|
-
props.inverse,
|
|
155
|
-
props.name,
|
|
156
|
-
props.reset,
|
|
157
|
-
mounted
|
|
158
|
-
]), process.env.NODE_ENV === "development" && props.debug !== "profile" && (0, import_react.useEffect)(() => (globalThis.TamaguiThemeManagers ??= /* @__PURE__ */ new Set(), globalThis.TamaguiThemeManagers.add(themeManager), () => {
|
|
159
|
-
globalThis.TamaguiThemeManagers.delete(themeManager);
|
|
160
|
-
}), [themeManager])), import_constants.isWeb && isInversingOnMount)
|
|
161
|
-
return {
|
|
162
|
-
isNewTheme: !1,
|
|
163
|
-
inversed: !1,
|
|
164
|
-
themeManager: parentManager,
|
|
165
|
-
state: {
|
|
166
|
-
name: "",
|
|
167
|
-
...parentManager?.state,
|
|
168
|
-
className: ""
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
return {
|
|
172
|
-
state,
|
|
173
|
-
isNewTheme,
|
|
174
|
-
inversed: !!props.inverse,
|
|
175
|
-
themeManager
|
|
176
|
-
};
|
|
177
|
-
function createState(prev, force = !1, foundNextState) {
|
|
178
|
-
if (prev && !foundNextState && !keys?.current && !force)
|
|
179
|
-
return prev;
|
|
180
|
-
let themeManager2 = parentManager, state2;
|
|
181
|
-
if ((0, import_ThemeManager.getHasThemeUpdatingProps)(props)) {
|
|
182
|
-
const parentManagerProp = isRoot ? "root" : parentManager;
|
|
183
|
-
if (prev?.themeManager) {
|
|
184
|
-
themeManager2 = prev.themeManager;
|
|
185
|
-
const forceChange = force || shouldAlwaysUpdate || (keys?.current ? !0 : void 0);
|
|
186
|
-
let nextState = null;
|
|
187
|
-
if (foundNextState)
|
|
188
|
-
nextState = foundNextState;
|
|
189
|
-
else {
|
|
190
|
-
const next = themeManager2.getState(props, parentManager);
|
|
191
|
-
nextState = getShouldUpdateTheme(
|
|
192
|
-
props,
|
|
193
|
-
parentManager,
|
|
194
|
-
keys,
|
|
195
|
-
prev,
|
|
196
|
-
next,
|
|
197
|
-
forceChange
|
|
198
|
-
);
|
|
199
|
-
}
|
|
200
|
-
nextState ? (state2 = nextState, !prev.isNewTheme && !isRoot ? themeManager2 = new import_ThemeManager.ThemeManager(props, parentManagerProp) : themeManager2.updateState(nextState)) : prev.isNewTheme && parentManager && !nextState && (themeManager2 = parentManager);
|
|
201
|
-
} else
|
|
202
|
-
themeManager2 = new import_ThemeManager.ThemeManager(props, parentManagerProp), state2 = { ...themeManager2.state };
|
|
203
|
-
}
|
|
204
|
-
const isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse);
|
|
205
|
-
isNewTheme2 && registerThemeManager(themeManager2);
|
|
206
|
-
const mounted2 = (import_constants.isWeb ? !(0, import_config.getSetting)("disableSSR") : !1) ? isRoot || prev?.mounted : !0;
|
|
207
|
-
state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager));
|
|
208
|
-
const response = {
|
|
209
|
-
themeManager: themeManager2,
|
|
210
|
-
isNewTheme: isNewTheme2,
|
|
211
|
-
mounted: mounted2
|
|
212
|
-
};
|
|
213
|
-
props.inverse && (response.inversed = !0);
|
|
214
|
-
const shouldReturnPrev = prev && !force && // isEqualShallow uses the second arg as the keys so this should compare without state first...
|
|
215
|
-
(0, import_createShallowSetState.isEqualShallow)(prev, response) && // ... and then compare just the state, because we make a new state obj but is likely the same
|
|
216
|
-
(0, import_createShallowSetState.isEqualShallow)(prev.state, state2);
|
|
217
|
-
if (prev && shouldReturnPrev)
|
|
218
|
-
return prev;
|
|
219
|
-
if (response.state = state2, response.prevState = prev?.state, process.env.NODE_ENV === "development" && props.debug && import_constants.isClient) {
|
|
220
|
-
console.groupCollapsed(`\u{1F537} [${themeManager2.id}] useChangeThemeEffect createState`);
|
|
221
|
-
const parentState = { ...parentManager?.state }, parentId = parentManager?.id, themeManagerState = { ...themeManager2.state };
|
|
222
|
-
console.info({
|
|
223
|
-
props,
|
|
224
|
-
parentState,
|
|
225
|
-
parentId,
|
|
226
|
-
themeManager: themeManager2,
|
|
227
|
-
prev,
|
|
228
|
-
response,
|
|
229
|
-
themeManagerState
|
|
230
|
-
}), console.groupEnd();
|
|
231
|
-
}
|
|
232
|
-
return response;
|
|
233
|
-
}
|
|
33
|
+
)), [(0, import_getThemeProxied.getThemeProxied)(props, themeState, keys), themeState];
|
|
234
34
|
};
|
|
235
35
|
//# sourceMappingURL=useTheme.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB,kBAEvB,yBAAmD,8BAEnD,uBAA8B;AAEvB,MAAM,WAAW,CAAC,QAAoB,CAAC,MAAM;AAClD,QAAM,CAAC,KAAK,IAAI,kBAAkB,KAAK;AAEvC,SADY;AAEd,GAOa,oBAAoB,CAC/B,OACA,SAAS,OACU;AACnB,QAAM,WAAO,qBAA2B,IAAI,GACtC,iBAAa,oCAAc,OAAO,QAAQ,IAAI;AAEpD,SAAI,QAAQ,IAAI,aAAa,kBACtB,YAAY,SACX,QAAQ,IAAI,qCAAqC,OACnD,QAAQ;AAAA,IACN,2FAA2F,KAAK;AAAA,MAC9F;AAAA,IACF,CAAC;AAAA;AAAA;AAAA,EACH,IAOC,KAFc,wCAAgB,OAAO,YAAY,IAAI,GAEtC,UAAU;AAClC;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -15,270 +15,26 @@ var __export = (target, all) => {
|
|
|
15
15
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
16
|
var useTheme_exports = {};
|
|
17
17
|
__export(useTheme_exports, {
|
|
18
|
-
activeThemeManagers: () => activeThemeManagers,
|
|
19
|
-
getThemeManager: () => getThemeManager,
|
|
20
|
-
useChangeThemeEffect: () => useChangeThemeEffect,
|
|
21
18
|
useTheme: () => useTheme,
|
|
22
19
|
useThemeWithState: () => useThemeWithState
|
|
23
20
|
});
|
|
24
21
|
module.exports = __toCommonJS(useTheme_exports);
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
}, useTheme = function() {
|
|
28
|
-
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyProps, [_, theme] = useThemeWithState(props), res = theme;
|
|
22
|
+
var import_react = require("react"), import_getThemeProxied = require("./getThemeProxied"), import_useThemeState = require("./useThemeState"), useTheme = function() {
|
|
23
|
+
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, [theme] = useThemeWithState(props), res = theme;
|
|
29
24
|
return res;
|
|
30
25
|
}, useThemeWithState = function(props) {
|
|
31
|
-
var keys = (0, import_react.useRef)(null),
|
|
32
|
-
process.env.NODE_ENV === "development" &&
|
|
33
|
-
var { themeManager, state } = changedThemeState;
|
|
34
|
-
process.env.NODE_ENV === "development" && (state != null && state.theme || process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.error(`[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(props)}).
|
|
26
|
+
var isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, keys = (0, import_react.useRef)(null), themeState = (0, import_useThemeState.useThemeState)(props, isRoot, keys);
|
|
27
|
+
process.env.NODE_ENV === "development" && (themeState != null && themeState.theme || process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.error(`[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(props)}).
|
|
35
28
|
|
|
36
29
|
If this is intended and you are using Tamagui without any themes, you can disable this warning by setting the environment variable TAMAGUI_DISABLE_NO_THEME_WARNING=1`));
|
|
37
|
-
var themeProxied = getThemeProxied(props,
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
var themeProxied = (0, import_getThemeProxied.getThemeProxied)(props, themeState, keys);
|
|
31
|
+
return [
|
|
32
|
+
themeProxied,
|
|
33
|
+
themeState
|
|
41
34
|
];
|
|
42
|
-
}, emptyObject = {}, ProxiedThemes = /* @__PURE__ */ new Map(), curKeys, curProps, curThemeManger;
|
|
43
|
-
function getThemeProxied(_props, state, _keys, _themeManager) {
|
|
44
|
-
var theme = state == null ? void 0 : state.theme;
|
|
45
|
-
if (!theme || !_themeManager)
|
|
46
|
-
return emptyObject;
|
|
47
|
-
if (curKeys = _keys, curProps = _props, curThemeManger = _themeManager, ProxiedThemes.has(theme)) {
|
|
48
|
-
var proxied = ProxiedThemes.get(theme);
|
|
49
|
-
return proxied;
|
|
50
|
-
}
|
|
51
|
-
var { name, scheme } = state, config = (0, import_config.getConfig)();
|
|
52
|
-
function track(key) {
|
|
53
|
-
curKeys && (curKeys.current || (curKeys.current = []), curKeys.current.push(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`));
|
|
54
|
-
}
|
|
55
|
-
var proxied1 = Object.fromEntries(Object.entries(theme).flatMap(function(param) {
|
|
56
|
-
var [key, value] = param, proxied2 = {
|
|
57
|
-
...value,
|
|
58
|
-
get val() {
|
|
59
|
-
return globalThis.tamaguiAvoidTracking || track(key), value.val;
|
|
60
|
-
},
|
|
61
|
-
get(platform) {
|
|
62
|
-
var outVal = (0, import_createVariable.getVariable)(value);
|
|
63
|
-
if (platform !== "web" && import_constants.isIos && !curProps.deopt && (0, import_config.getSetting)("fastSchemeChange") && !(0, import_shouldDeoptDueToParentScheme.shouldDeoptDueToParentScheme)(curThemeManger) && scheme) {
|
|
64
|
-
var _config_themes_name, _config_themes_oppositeName, oppositeScheme = scheme === "dark" ? "light" : "dark", oppositeName = name.replace(scheme, oppositeScheme), color = (0, import_createVariable.getVariable)((_config_themes_name = config.themes[name]) === null || _config_themes_name === void 0 ? void 0 : _config_themes_name[key]), oppositeColor = (0, import_createVariable.getVariable)((_config_themes_oppositeName = config.themes[oppositeName]) === null || _config_themes_oppositeName === void 0 ? void 0 : _config_themes_oppositeName[key]), dynamicVal = {
|
|
65
|
-
dynamic: {
|
|
66
|
-
[scheme]: color,
|
|
67
|
-
[oppositeScheme]: oppositeColor
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
return dynamicVal;
|
|
71
|
-
}
|
|
72
|
-
return process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key because of:
|
|
73
|
-
not web: ${platform !== "web"}
|
|
74
|
-
isIOS: ${import_constants.isIos}
|
|
75
|
-
deopt: ${curProps.deopt}
|
|
76
|
-
fastScheme: ${(0, import_config.getSetting)("fastSchemeChange")}
|
|
77
|
-
inversed: ${getIsInversed(curThemeManger)}
|
|
78
|
-
`), track(key), outVal;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
return [
|
|
82
|
-
[
|
|
83
|
-
key,
|
|
84
|
-
proxied2
|
|
85
|
-
],
|
|
86
|
-
[
|
|
87
|
-
`$${key}`,
|
|
88
|
-
proxied2
|
|
89
|
-
]
|
|
90
|
-
];
|
|
91
|
-
}));
|
|
92
|
-
return ProxiedThemes.set(theme, proxied1), proxied1;
|
|
93
|
-
}
|
|
94
|
-
function getIsInversed(manager) {
|
|
95
|
-
for (var isInversed = !1, cur = manager; cur; ) {
|
|
96
|
-
if (!cur.parentManager) return isInversed;
|
|
97
|
-
cur.parentManager.state.scheme !== cur.state.scheme && (isInversed = !isInversed), cur = cur.parentManager;
|
|
98
|
-
}
|
|
99
|
-
return !1;
|
|
100
|
-
}
|
|
101
|
-
var activeThemeManagers = /* @__PURE__ */ new Set(), _uidToManager = /* @__PURE__ */ new WeakMap(), _idToUID = {}, getId = function(id) {
|
|
102
|
-
return _idToUID[id];
|
|
103
|
-
}, getThemeManager = function(id) {
|
|
104
|
-
return _uidToManager.get(getId(id));
|
|
105
|
-
}, registerThemeManager = function(t) {
|
|
106
|
-
if (!_idToUID[t.id]) {
|
|
107
|
-
var id = _idToUID[t.id] = {};
|
|
108
|
-
_uidToManager.set(id, t);
|
|
109
|
-
}
|
|
110
|
-
}, ogLog = console.error, preventWarnSetState = process.env.NODE_ENV === "production" ? ogLog : (
|
|
111
|
-
// temporary fix for logs, they are harmless in that i've tried to rewrite this
|
|
112
|
-
// a few times using the "right" ways, but they are always slower. maybe skill issue
|
|
113
|
-
function(a) {
|
|
114
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)
|
|
115
|
-
args[_key - 1] = arguments[_key];
|
|
116
|
-
if (!(typeof a == "string" && a.includes("Cannot update a component")))
|
|
117
|
-
return ogLog(a, ...args);
|
|
118
|
-
}
|
|
119
|
-
);
|
|
120
|
-
function getShouldUpdateTheme(props, parentManager, keys, themeState, nextState) {
|
|
121
|
-
var forceShouldChange = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !1, _themeState_themeManager, _themeState_state;
|
|
122
|
-
if (!import_constants.isServer && !(!forceShouldChange && !(keys != null && keys.current) && (!themeState || !themeState.isNewTheme) && !(0, import_ThemeManager.getHasThemeUpdatingProps)(props))) {
|
|
123
|
-
var next = nextState || (themeState == null || (_themeState_themeManager = themeState.themeManager) === null || _themeState_themeManager === void 0 ? void 0 : _themeState_themeManager.getState(props, parentManager));
|
|
124
|
-
if (forceShouldChange)
|
|
125
|
-
return next;
|
|
126
|
-
if (!(!next || next.theme === (themeState == null || (_themeState_state = themeState.state) === null || _themeState_state === void 0 ? void 0 : _themeState_state.theme)))
|
|
127
|
-
return next;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
var useChangeThemeEffect = function(props) {
|
|
131
|
-
var isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, keys = arguments.length > 2 ? arguments[2] : void 0, _props_needsUpdate, { disable } = props, parentManager = (0, import_react.useContext)(import_ThemeManagerContext.ThemeManagerContext), shouldAlwaysUpdate = ((_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props)) === !0 ? !0 : void 0;
|
|
132
|
-
if (!isRoot && !parentManager || disable)
|
|
133
|
-
return {
|
|
134
|
-
isNewTheme: !1,
|
|
135
|
-
state: parentManager == null ? void 0 : parentManager.state,
|
|
136
|
-
themeManager: parentManager
|
|
137
|
-
};
|
|
138
|
-
var [themeState, setThemeState] = (0, import_react.useState)(createState), { state, mounted, isNewTheme, themeManager, prevState } = themeState, isInversingOnMount = !!(!themeState.mounted && props.inverse);
|
|
139
|
-
if (themeManager) {
|
|
140
|
-
var nextState = getShouldUpdateTheme(props, parentManager, keys, themeState, void 0, shouldAlwaysUpdate);
|
|
141
|
-
if (nextState) {
|
|
142
|
-
var _next_state, _themeState_state, next = createState(themeState, void 0, nextState);
|
|
143
|
-
((_next_state = next.state) === null || _next_state === void 0 ? void 0 : _next_state.name) !== ((_themeState_state = themeState.state) === null || _themeState_state === void 0 ? void 0 : _themeState_state.name) && (setThemeState(next), console.error = preventWarnSetState, themeManager.notify(), console.error = ogLog);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (import_constants.isServer || ((0, import_react.useEffect)(function() {
|
|
147
|
-
if (themeManager) {
|
|
148
|
-
if (props.inverse && !mounted) {
|
|
149
|
-
setThemeState(function(prev) {
|
|
150
|
-
return createState({
|
|
151
|
-
...prev,
|
|
152
|
-
mounted: !0
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
if ((isNewTheme || isRoot) && (activeThemeManagers.add(themeManager), process.env.NODE_ENV === "development" && isRoot)) {
|
|
158
|
-
var _globalThis, _TamaguiRootThemeManager;
|
|
159
|
-
(_globalThis = globalThis)[_TamaguiRootThemeManager = "TamaguiRootThemeManager"] || (_globalThis[_TamaguiRootThemeManager] = themeManager);
|
|
160
|
-
}
|
|
161
|
-
var updated = getShouldUpdateTheme(props, parentManager, keys, themeState, void 0, shouldAlwaysUpdate);
|
|
162
|
-
updated && setThemeState(function(prev) {
|
|
163
|
-
return createState(prev, void 0, updated);
|
|
164
|
-
});
|
|
165
|
-
var selfListenerDispose = themeManager.onChangeTheme(function(_a, _b, forced) {
|
|
166
|
-
forced && setThemeState(function(prev) {
|
|
167
|
-
var next2 = createState(prev, forced !== "self");
|
|
168
|
-
return next2;
|
|
169
|
-
});
|
|
170
|
-
}, !0), disposeChangeListener = parentManager == null ? void 0 : parentManager.onChangeTheme(function(name, manager, forced) {
|
|
171
|
-
var force = forced || (import_constants.isServer ? void 0 : keys != null && keys.current ? !0 : void 0) || props.deopt || props["disable-child-theme"], shouldTryUpdate = force ?? !!(keys != null && keys.current || isNewTheme);
|
|
172
|
-
process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info(" \u{1F538} onChange", {
|
|
173
|
-
id: themeManager.id,
|
|
174
|
-
force,
|
|
175
|
-
shouldTryUpdate,
|
|
176
|
-
props,
|
|
177
|
-
name,
|
|
178
|
-
keys
|
|
179
|
-
}), shouldTryUpdate && setThemeState(function(prev) {
|
|
180
|
-
return createState(prev, !0);
|
|
181
|
-
});
|
|
182
|
-
}, themeManager.id);
|
|
183
|
-
return function() {
|
|
184
|
-
selfListenerDispose(), disposeChangeListener == null || disposeChangeListener(), isNewTheme && activeThemeManagers.delete(themeManager);
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
}, [
|
|
188
|
-
themeManager,
|
|
189
|
-
parentManager,
|
|
190
|
-
isNewTheme,
|
|
191
|
-
props.componentName,
|
|
192
|
-
props.inverse,
|
|
193
|
-
props.name,
|
|
194
|
-
props.reset,
|
|
195
|
-
mounted
|
|
196
|
-
]), process.env.NODE_ENV === "development" && props.debug !== "profile" && (0, import_react.useEffect)(function() {
|
|
197
|
-
var _globalThis, _TamaguiThemeManagers, _;
|
|
198
|
-
return (_ = (_globalThis = globalThis)[_TamaguiThemeManagers = "TamaguiThemeManagers"]) !== null && _ !== void 0 || (_globalThis[_TamaguiThemeManagers] = /* @__PURE__ */ new Set()), globalThis.TamaguiThemeManagers.add(themeManager), function() {
|
|
199
|
-
globalThis.TamaguiThemeManagers.delete(themeManager);
|
|
200
|
-
};
|
|
201
|
-
}, [
|
|
202
|
-
themeManager
|
|
203
|
-
])), import_constants.isWeb && isInversingOnMount)
|
|
204
|
-
return {
|
|
205
|
-
isNewTheme: !1,
|
|
206
|
-
inversed: !1,
|
|
207
|
-
themeManager: parentManager,
|
|
208
|
-
state: {
|
|
209
|
-
name: "",
|
|
210
|
-
...parentManager == null ? void 0 : parentManager.state,
|
|
211
|
-
className: ""
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
return {
|
|
215
|
-
state,
|
|
216
|
-
isNewTheme,
|
|
217
|
-
inversed: !!props.inverse,
|
|
218
|
-
themeManager
|
|
219
|
-
};
|
|
220
|
-
function createState(prev) {
|
|
221
|
-
var force = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, foundNextState = arguments.length > 2 ? arguments[2] : void 0;
|
|
222
|
-
if (prev && !foundNextState && !(keys != null && keys.current) && !force)
|
|
223
|
-
return prev;
|
|
224
|
-
var themeManager2 = parentManager, state2, hasThemeUpdatingProps = (0, import_ThemeManager.getHasThemeUpdatingProps)(props);
|
|
225
|
-
if (hasThemeUpdatingProps) {
|
|
226
|
-
var parentManagerProp = isRoot ? "root" : parentManager;
|
|
227
|
-
if (prev != null && prev.themeManager) {
|
|
228
|
-
themeManager2 = prev.themeManager;
|
|
229
|
-
var forceChange = force || shouldAlwaysUpdate || (keys != null && keys.current ? !0 : void 0), nextState2 = null;
|
|
230
|
-
if (foundNextState)
|
|
231
|
-
nextState2 = foundNextState;
|
|
232
|
-
else {
|
|
233
|
-
var next2 = themeManager2.getState(props, parentManager);
|
|
234
|
-
nextState2 = getShouldUpdateTheme(props, parentManager, keys, prev, next2, forceChange);
|
|
235
|
-
}
|
|
236
|
-
nextState2 ? (state2 = nextState2, !prev.isNewTheme && !isRoot ? themeManager2 = new import_ThemeManager.ThemeManager(props, parentManagerProp) : themeManager2.updateState(nextState2)) : prev.isNewTheme && parentManager && !nextState2 && (themeManager2 = parentManager);
|
|
237
|
-
} else
|
|
238
|
-
themeManager2 = new import_ThemeManager.ThemeManager(props, parentManagerProp), state2 = {
|
|
239
|
-
...themeManager2.state
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
var isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse);
|
|
243
|
-
isNewTheme2 && registerThemeManager(themeManager2);
|
|
244
|
-
var isWebSSR = import_constants.isWeb ? !(0, import_config.getSetting)("disableSSR") : !1, mounted2 = isWebSSR ? isRoot || (prev == null ? void 0 : prev.mounted) : !0;
|
|
245
|
-
state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager));
|
|
246
|
-
var response = {
|
|
247
|
-
themeManager: themeManager2,
|
|
248
|
-
isNewTheme: isNewTheme2,
|
|
249
|
-
mounted: mounted2
|
|
250
|
-
};
|
|
251
|
-
props.inverse && (response.inversed = !0);
|
|
252
|
-
var shouldReturnPrev = prev && !force && // isEqualShallow uses the second arg as the keys so this should compare without state first...
|
|
253
|
-
(0, import_createShallowSetState.isEqualShallow)(prev, response) && // ... and then compare just the state, because we make a new state obj but is likely the same
|
|
254
|
-
(0, import_createShallowSetState.isEqualShallow)(prev.state, state2);
|
|
255
|
-
if (prev && shouldReturnPrev)
|
|
256
|
-
return prev;
|
|
257
|
-
if (response.state = state2, response.prevState = prev == null ? void 0 : prev.state, process.env.NODE_ENV === "development" && props.debug && import_constants.isClient) {
|
|
258
|
-
console.groupCollapsed(`\u{1F537} [${themeManager2.id}] useChangeThemeEffect createState`);
|
|
259
|
-
var parentState = {
|
|
260
|
-
...parentManager == null ? void 0 : parentManager.state
|
|
261
|
-
}, parentId = parentManager == null ? void 0 : parentManager.id, themeManagerState = {
|
|
262
|
-
...themeManager2.state
|
|
263
|
-
};
|
|
264
|
-
console.info({
|
|
265
|
-
props,
|
|
266
|
-
parentState,
|
|
267
|
-
parentId,
|
|
268
|
-
themeManager: themeManager2,
|
|
269
|
-
prev,
|
|
270
|
-
response,
|
|
271
|
-
themeManagerState
|
|
272
|
-
}), console.groupEnd();
|
|
273
|
-
}
|
|
274
|
-
return response;
|
|
275
|
-
}
|
|
276
35
|
};
|
|
277
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
278
37
|
0 && (module.exports = {
|
|
279
|
-
activeThemeManagers,
|
|
280
|
-
getThemeManager,
|
|
281
|
-
useChangeThemeEffect,
|
|
282
38
|
useTheme,
|
|
283
39
|
useThemeWithState
|
|
284
40
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/Users/n8/tamagui/code/core/web/src/hooks/useTheme.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA
|
|
5
|
-
"names": ["
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;;mBAAuB,kBAEvB,yBAAmD,8BAEnD,uBAA8B,4BAEjBA,WAAW,WAAA;MAACC,QAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAoB,CAAC,GACtC,CAACC,KAAAA,IAASC,kBAAkBF,KAAAA,GAC5BG,MAAMF;AACZ,SAAOE;AACT,GAOaD,oBAAoB,SAC/BF,OAAAA;MACAI,SAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAS,IAEHC,WAAOC,qBAA2B,IAAA,GAClCC,iBAAaC,oCAAcR,OAAOI,QAAQC,IAAAA;AAEhD,EAAII,QAAQC,IAAIC,aAAa,kBACtBJ,cAAAA,QAAAA,WAAYN,SACXQ,QAAQC,IAAIE,qCAAqC,OACnDC,QAAQC,MACN,2FAA2FC,KAAKC,UAC9FhB,KAAAA,CAAAA;;sKAC4K;AAMtL,MAAMiB,mBAAeC,wCAAgBlB,OAAOO,YAAYF,IAAAA;AAExD,SAAO;IAACY;IAAcV;;AACxB;",
|
|
5
|
+
"names": ["useTheme", "props", "theme", "useThemeWithState", "res", "isRoot", "keys", "useRef", "themeState", "useThemeState", "process", "env", "NODE_ENV", "TAMAGUI_DISABLE_NO_THEME_WARNING", "console", "error", "JSON", "stringify", "themeProxied", "getThemeProxied"]
|
|
6
6
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var
|
|
6
|
-
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
5
|
var __export = (target, all) => {
|
|
8
6
|
for (var name in all) __defProp(target, name, {
|
|
9
7
|
get: all[name],
|
|
@@ -17,33 +15,23 @@ var __export = (target, all) => {
|
|
|
17
15
|
});
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
-
value: mod,
|
|
27
|
-
enumerable: !0
|
|
28
|
-
}) : target, mod)),
|
|
29
|
-
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
30
|
-
value: !0
|
|
31
|
-
}), mod);
|
|
18
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), mod);
|
|
32
21
|
var useThemeName_exports = {};
|
|
33
22
|
__export(useThemeName_exports, {
|
|
34
23
|
useThemeName: () => useThemeName
|
|
35
24
|
});
|
|
36
25
|
module.exports = __toCommonJS(useThemeName_exports);
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}, [manager?.state.name]), name;
|
|
26
|
+
var import_useThemeState = require("./useThemeState.cjs");
|
|
27
|
+
const forceUpdateState = {
|
|
28
|
+
forceClassName: !0,
|
|
29
|
+
deopt: !0,
|
|
30
|
+
needsUpdate: () => !0
|
|
31
|
+
},
|
|
32
|
+
forceKeys = {
|
|
33
|
+
current: /* @__PURE__ */new Set([""])
|
|
34
|
+
};
|
|
35
|
+
function useThemeName() {
|
|
36
|
+
return (0, import_useThemeState.useThemeState)(forceUpdateState, !1, forceKeys)?.name || "";
|
|
49
37
|
}
|