tamagui 1.84.1 → 1.84.2
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/native.js +23 -15
- package/dist/native.js.map +2 -2
- package/dist/test.native.js +22 -16
- package/dist/test.native.js.map +2 -2
- package/package.json +52 -52
package/dist/test.native.js
CHANGED
|
@@ -3761,10 +3761,10 @@ var require_ThemeManagerContext_native = __commonJS({
|
|
|
3761
3761
|
return to;
|
|
3762
3762
|
}, __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: !0 }), mod), ThemeManagerContext_exports = {};
|
|
3763
3763
|
__export2(ThemeManagerContext_exports, {
|
|
3764
|
-
|
|
3764
|
+
ThemeManagerIDContext: () => ThemeManagerIDContext
|
|
3765
3765
|
});
|
|
3766
3766
|
module2.exports = __toCommonJS2(ThemeManagerContext_exports);
|
|
3767
|
-
var import_react2 = require("react"),
|
|
3767
|
+
var import_react2 = require("react"), ThemeManagerIDContext = (0, import_react2.createContext)(1);
|
|
3768
3768
|
}
|
|
3769
3769
|
});
|
|
3770
3770
|
|
|
@@ -3793,7 +3793,7 @@ var require_ThemeManager_native = __commonJS({
|
|
|
3793
3793
|
}
|
|
3794
3794
|
var uid = 0, ThemeManager = class {
|
|
3795
3795
|
constructor(props = {}, parentManager) {
|
|
3796
|
-
if (this.props = props, this.id =
|
|
3796
|
+
if (this.props = props, this.id = 0, this.themeListeners = /* @__PURE__ */ new Set(), this.parentManager = null, this.state = emptyState, this._allKeys = null, uid = (uid + 1) % Number.MAX_VALUE, this.id = uid, parentManager === "root") {
|
|
3797
3797
|
this.updateStateFromProps(props, !1);
|
|
3798
3798
|
return;
|
|
3799
3799
|
}
|
|
@@ -3936,6 +3936,7 @@ var require_useTheme_native = __commonJS({
|
|
|
3936
3936
|
}, __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: !0 }), mod), useTheme_exports = {};
|
|
3937
3937
|
__export2(useTheme_exports, {
|
|
3938
3938
|
activeThemeManagers: () => activeThemeManagers,
|
|
3939
|
+
getThemeManager: () => getThemeManager,
|
|
3939
3940
|
getThemeProxied: () => getThemeProxied,
|
|
3940
3941
|
useChangeThemeEffect: () => useChangeThemeEffect,
|
|
3941
3942
|
useTheme: () => useTheme4,
|
|
@@ -3961,9 +3962,7 @@ var require_useTheme_native = __commonJS({
|
|
|
3961
3962
|
var _a, _b;
|
|
3962
3963
|
return ((_a = props.shouldUpdate) == null ? void 0 : _a.call(props)) ?? (keys.current.length > 0 ? !0 : void 0);
|
|
3963
3964
|
}
|
|
3964
|
-
), { themeManager, state } = changedThemeState;
|
|
3965
|
-
state != null && state.theme;
|
|
3966
|
-
let themeProxied = (0, import_react2.useMemo)(() => !themeManager || !(state != null && state.theme) ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state == null ? void 0 : state.theme, themeManager, props.deopt, props.debug]);
|
|
3965
|
+
), { themeManager, state } = changedThemeState, themeProxied = (0, import_react2.useMemo)(() => !themeManager || !(state != null && state.theme) ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state == null ? void 0 : state.theme, themeManager, props.deopt, props.debug]);
|
|
3967
3966
|
return [changedThemeState, themeProxied];
|
|
3968
3967
|
};
|
|
3969
3968
|
function getThemeProxied({ theme, name, scheme }, deopt = !1, themeManager, keys, debug) {
|
|
@@ -4033,8 +4032,13 @@ var require_useTheme_native = __commonJS({
|
|
|
4033
4032
|
}
|
|
4034
4033
|
return !1;
|
|
4035
4034
|
}
|
|
4036
|
-
var activeThemeManagers = /* @__PURE__ */ new Set(),
|
|
4037
|
-
|
|
4035
|
+
var activeThemeManagers = /* @__PURE__ */ new Set(), _uidToManager = /* @__PURE__ */ new WeakMap(), _idToUID = {}, getId = (id) => _idToUID[id], getThemeManager = (id) => _uidToManager.get(getId(id)), registerThemeManager = (t) => {
|
|
4036
|
+
if (!_idToUID[t.id]) {
|
|
4037
|
+
let id = _idToUID[t.id] = {};
|
|
4038
|
+
_uidToManager.set(id, t);
|
|
4039
|
+
}
|
|
4040
|
+
}, useChangeThemeEffect = (props, isRoot = !1, keys, shouldUpdate) => {
|
|
4041
|
+
let { disable } = props, parentManagerId = (0, import_react2.useContext)(import_ThemeManagerContext.ThemeManagerIDContext), parentManager = getThemeManager(parentManagerId);
|
|
4038
4042
|
if (!isRoot && !parentManager || disable)
|
|
4039
4043
|
return {
|
|
4040
4044
|
isNewTheme: !1,
|
|
@@ -4060,7 +4064,7 @@ var require_useTheme_native = __commonJS({
|
|
|
4060
4064
|
}));
|
|
4061
4065
|
return;
|
|
4062
4066
|
}
|
|
4063
|
-
isNewTheme
|
|
4067
|
+
(isNewTheme || getShouldUpdateTheme(themeManager)) && (activeThemeManagers.add(themeManager), setThemeState(createState));
|
|
4064
4068
|
let selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
|
|
4065
4069
|
forced && setThemeState((prev) => createState(prev, !0));
|
|
4066
4070
|
}), disposeChangeListener = parentManager == null ? void 0 : parentManager.onChangeTheme(
|
|
@@ -4071,7 +4075,7 @@ var require_useTheme_native = __commonJS({
|
|
|
4071
4075
|
themeManager.id
|
|
4072
4076
|
);
|
|
4073
4077
|
return () => {
|
|
4074
|
-
selfListenerDispose(), disposeChangeListener == null || disposeChangeListener(), activeThemeManagers.delete(themeManager);
|
|
4078
|
+
selfListenerDispose(), disposeChangeListener == null || disposeChangeListener(), isNewTheme && activeThemeManagers.delete(themeManager);
|
|
4075
4079
|
};
|
|
4076
4080
|
}, [
|
|
4077
4081
|
themeManager,
|
|
@@ -4117,14 +4121,16 @@ var require_useTheme_native = __commonJS({
|
|
|
4117
4121
|
} else
|
|
4118
4122
|
themeManager2 = getNewThemeManager(), state2 = { ...themeManager2.state };
|
|
4119
4123
|
}
|
|
4120
|
-
let isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse)
|
|
4124
|
+
let isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse);
|
|
4125
|
+
isNewTheme2 && registerThemeManager(themeManager2);
|
|
4126
|
+
let mounted2 = props.inverse ? isRoot || (prev == null ? void 0 : prev.mounted) : !0;
|
|
4121
4127
|
state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager));
|
|
4122
4128
|
let wasInversed = prev == null ? void 0 : prev.inversed, inversed2 = isNewTheme2 && state2.scheme !== (parentManager == null ? void 0 : parentManager.state.scheme) ? !0 : wasInversed != null ? !1 : null, response = {
|
|
4123
4129
|
themeManager: themeManager2,
|
|
4124
4130
|
isNewTheme: isNewTheme2,
|
|
4125
4131
|
mounted: mounted2,
|
|
4126
4132
|
inversed: inversed2
|
|
4127
|
-
}, shouldReturnPrev =
|
|
4133
|
+
}, shouldReturnPrev = prev && !force && // isEqualShallow uses the second arg as the keys so this should compare without state first...
|
|
4128
4134
|
(0, import_createShallowSetState.isEqualShallow)(prev, response) && // ... and then compare just the state, because we make a new state obj but is likely the same
|
|
4129
4135
|
(0, import_createShallowSetState.isEqualShallow)(prev.state, state2);
|
|
4130
4136
|
return prev && shouldReturnPrev ? prev : (response.state = state2, response);
|
|
@@ -4205,7 +4211,7 @@ var require_Theme_native = __commonJS({
|
|
|
4205
4211
|
function getThemedChildren(themeState, children, props, isRoot = !1) {
|
|
4206
4212
|
let { themeManager, isNewTheme } = themeState;
|
|
4207
4213
|
if (!themeManager)
|
|
4208
|
-
throw "\u274C";
|
|
4214
|
+
throw new Error("\u274C");
|
|
4209
4215
|
let { shallow, forceClassName } = props, hasEverThemed = (0, import_react2.useRef)(!1), shouldRenderChildrenWithTheme = isNewTheme || props.inverse || hasEverThemed.current || forceClassName || isRoot;
|
|
4210
4216
|
if (shouldRenderChildrenWithTheme && (hasEverThemed.current = !0), !shouldRenderChildrenWithTheme)
|
|
4211
4217
|
return children;
|
|
@@ -4215,7 +4221,7 @@ var require_Theme_native = __commonJS({
|
|
|
4215
4221
|
void 0,
|
|
4216
4222
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Theme2, { name: themeManager.state.parentName, children: child.props.children })
|
|
4217
4223
|
) : child));
|
|
4218
|
-
let elementsWithContext = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_ThemeManagerContext.
|
|
4224
|
+
let elementsWithContext = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_ThemeManagerContext.ThemeManagerIDContext.Provider, { value: themeManager.id, children: next });
|
|
4219
4225
|
return forceClassName === !1 ? elementsWithContext : import_constants4.isWeb ? wrapThemeElements({
|
|
4220
4226
|
children: elementsWithContext,
|
|
4221
4227
|
themeState,
|
|
@@ -5757,9 +5763,9 @@ var require_useThemeName_native = __commonJS({
|
|
|
5757
5763
|
useThemeName: () => useThemeName2
|
|
5758
5764
|
});
|
|
5759
5765
|
module2.exports = __toCommonJS2(useThemeName_exports);
|
|
5760
|
-
var import_constants4 = require_index_native(), import_react2 = require("react"), import_ThemeManagerContext = require_ThemeManagerContext_native();
|
|
5766
|
+
var import_constants4 = require_index_native(), import_react2 = require("react"), import_ThemeManagerContext = require_ThemeManagerContext_native(), import_useTheme = require_useTheme_native();
|
|
5761
5767
|
function useThemeName2(opts) {
|
|
5762
|
-
let manager = (0, import_react2.useContext)(import_ThemeManagerContext.
|
|
5768
|
+
let manager = (0, import_useTheme.getThemeManager)((0, import_react2.useContext)(import_ThemeManagerContext.ThemeManagerIDContext)), [name, setName] = (0, import_react2.useState)((manager == null ? void 0 : manager.state.name) || "");
|
|
5763
5769
|
return (0, import_constants4.useIsomorphicLayoutEffect)(() => {
|
|
5764
5770
|
if (manager)
|
|
5765
5771
|
return setName(manager.state.name), manager.onChangeTheme((next, manager2) => {
|