@tamagui/web 1.74.2 → 1.74.4
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/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +1 -1
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/helpers/getAnimationDriver.js +28 -0
- package/dist/cjs/helpers/getAnimationDriver.js.map +6 -0
- package/dist/cjs/helpers/getAnimationDriver.native.js +29 -0
- package/dist/cjs/helpers/getAnimationDriver.native.js.map +6 -0
- package/dist/cjs/helpers/propMapper.js +24 -19
- package/dist/cjs/helpers/propMapper.js.map +1 -1
- package/dist/cjs/helpers/propMapper.native.js +24 -19
- package/dist/cjs/helpers/propMapper.native.js.map +1 -1
- package/dist/cjs/hooks/useAnimationDriver.js +26 -0
- package/dist/cjs/hooks/useAnimationDriver.js.map +6 -0
- package/dist/cjs/hooks/useAnimationDriver.native.js +27 -0
- package/dist/cjs/hooks/useAnimationDriver.native.js.map +6 -0
- package/dist/cjs/hooks/useStyle.js +47 -0
- package/dist/cjs/hooks/useStyle.js.map +6 -0
- package/dist/cjs/hooks/useStyle.native.js +48 -0
- package/dist/cjs/hooks/useStyle.native.js.map +6 -0
- package/dist/cjs/hooks/useTheme.js +4 -4
- package/dist/cjs/hooks/useTheme.js.map +1 -1
- package/dist/cjs/hooks/useTheme.native.js +5 -5
- package/dist/cjs/hooks/useTheme.native.js.map +1 -1
- package/dist/cjs/views/AnimationDriverProvider.js +26 -0
- package/dist/cjs/views/AnimationDriverProvider.js.map +6 -0
- package/dist/cjs/views/AnimationDriverProvider.native.js +27 -0
- package/dist/cjs/views/AnimationDriverProvider.native.js.map +6 -0
- package/dist/esm/Tamagui.native.js +36 -0
- package/dist/esm/Tamagui.native.js.map +6 -0
- package/dist/esm/config.native.js +62 -0
- package/dist/esm/config.native.js.map +6 -0
- package/dist/esm/constants/accessibilityDirectMap.native.js +59 -0
- package/dist/esm/constants/accessibilityDirectMap.native.js.map +6 -0
- package/dist/esm/constants/constants.native.js +9 -0
- package/dist/esm/constants/constants.native.js.map +6 -0
- package/dist/esm/constants/isDevTools.native.js +12 -0
- package/dist/esm/constants/isDevTools.native.js.map +6 -0
- package/dist/esm/contexts/ComponentContext.native.js +22 -0
- package/dist/esm/contexts/ComponentContext.native.js.map +6 -0
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.native.js +683 -0
- package/dist/esm/createComponent.native.js.map +6 -0
- package/dist/esm/createFont.native.js +38 -0
- package/dist/esm/createFont.native.js.map +6 -0
- package/dist/esm/createShorthands.native.js +7 -0
- package/dist/esm/createShorthands.native.js.map +6 -0
- package/dist/esm/createTamagui.native.js +181 -0
- package/dist/esm/createTamagui.native.js.map +6 -0
- package/dist/esm/createTheme.native.js +5 -0
- package/dist/esm/createTheme.native.js.map +6 -0
- package/dist/esm/createTokens.native.js +8 -0
- package/dist/esm/createTokens.native.js.map +6 -0
- package/dist/esm/createVariable.native.js +57 -0
- package/dist/esm/createVariable.native.js.map +6 -0
- package/dist/esm/createVariables.native.js +34 -0
- package/dist/esm/createVariables.native.js.map +6 -0
- package/dist/esm/defaultComponentState.native.js +19 -0
- package/dist/esm/defaultComponentState.native.js.map +6 -0
- package/dist/esm/helpers/ThemeManager.native.js +157 -0
- package/dist/esm/helpers/ThemeManager.native.js.map +6 -0
- package/dist/esm/helpers/ThemeManagerContext.native.js +6 -0
- package/dist/esm/helpers/ThemeManagerContext.native.js.map +6 -0
- package/dist/esm/helpers/createChainedWeakCache.native.js +33 -0
- package/dist/esm/helpers/createChainedWeakCache.native.js.map +6 -0
- package/dist/esm/helpers/createMediaStyle.native.js +52 -0
- package/dist/esm/helpers/createMediaStyle.native.js.map +6 -0
- package/dist/esm/helpers/createProxy.native.js +14 -0
- package/dist/esm/helpers/createProxy.native.js.map +6 -0
- package/dist/esm/helpers/createShallowSetState.native.js +14 -0
- package/dist/esm/helpers/createShallowSetState.native.js.map +6 -0
- package/dist/esm/helpers/createStyledContext.native.js +30 -0
- package/dist/esm/helpers/createStyledContext.native.js.map +6 -0
- package/dist/esm/helpers/defaultOffset.native.js +5 -0
- package/dist/esm/helpers/defaultOffset.native.js.map +6 -0
- package/dist/esm/helpers/expandStyle.native.js +43 -0
- package/dist/esm/helpers/expandStyle.native.js.map +6 -0
- package/dist/esm/helpers/expandStyles.native.js +37 -0
- package/dist/esm/helpers/expandStyles.native.js.map +6 -0
- package/dist/esm/helpers/getAnimationDriver.js +8 -0
- package/dist/esm/helpers/getAnimationDriver.js.map +6 -0
- package/dist/esm/helpers/getExpandedShorthands.native.js +14 -0
- package/dist/esm/helpers/getExpandedShorthands.native.js.map +6 -0
- package/dist/esm/helpers/getFontLanguage.native.js +5 -0
- package/dist/esm/helpers/getFontLanguage.native.js.map +6 -0
- package/dist/esm/helpers/getGroupPropParts.native.js +11 -0
- package/dist/esm/helpers/getGroupPropParts.native.js.map +6 -0
- package/dist/esm/helpers/getSplitStyles.native.js +539 -0
- package/dist/esm/helpers/getSplitStyles.native.js.map +6 -0
- package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
- package/dist/esm/helpers/getStylesAtomic.native.js.map +6 -0
- package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
- package/dist/esm/helpers/getThemeCSSRules.native.js.map +6 -0
- package/dist/esm/helpers/getVariantExtras.native.js +51 -0
- package/dist/esm/helpers/getVariantExtras.native.js.map +6 -0
- package/dist/esm/helpers/insertStyleRule.native.js +195 -0
- package/dist/esm/helpers/insertStyleRule.native.js.map +6 -0
- package/dist/esm/helpers/isObj.native.js +5 -0
- package/dist/esm/helpers/isObj.native.js.map +6 -0
- package/dist/esm/helpers/isTamaguiComponent.native.js +8 -0
- package/dist/esm/helpers/isTamaguiComponent.native.js.map +6 -0
- package/dist/esm/helpers/isTamaguiElement.native.js +7 -0
- package/dist/esm/helpers/isTamaguiElement.native.js.map +6 -0
- package/dist/esm/helpers/matchMedia.native.js +20 -0
- package/dist/esm/helpers/matchMedia.native.js.map +6 -0
- package/dist/esm/helpers/mergeProps.native.js +28 -0
- package/dist/esm/helpers/mergeProps.native.js.map +6 -0
- package/dist/esm/helpers/mergeVariants.native.js +35 -0
- package/dist/esm/helpers/mergeVariants.native.js.map +6 -0
- package/dist/esm/helpers/normalizeColor.native.js +20 -0
- package/dist/esm/helpers/normalizeColor.native.js.map +6 -0
- package/dist/esm/helpers/normalizeShadow.native.js +28 -0
- package/dist/esm/helpers/normalizeShadow.native.js.map +6 -0
- package/dist/esm/helpers/normalizeStylePropKeys.native.js +16 -0
- package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +6 -0
- package/dist/esm/helpers/normalizeValueWithProperty.native.js +40 -0
- package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +6 -0
- package/dist/esm/helpers/objectIdentityKey.native.js +22 -0
- package/dist/esm/helpers/objectIdentityKey.native.js.map +6 -0
- package/dist/esm/helpers/propMapper.js +24 -19
- package/dist/esm/helpers/propMapper.js.map +1 -1
- package/dist/esm/helpers/propMapper.native.js +213 -0
- package/dist/esm/helpers/propMapper.native.js.map +6 -0
- package/dist/esm/helpers/proxyThemeToParents.native.js +40 -0
- package/dist/esm/helpers/proxyThemeToParents.native.js.map +6 -0
- package/dist/esm/helpers/proxyThemeVariables.native.js +16 -0
- package/dist/esm/helpers/proxyThemeVariables.native.js.map +6 -0
- package/dist/esm/helpers/pseudoDescriptors.native.js +37 -0
- package/dist/esm/helpers/pseudoDescriptors.native.js.map +6 -0
- package/dist/esm/helpers/registerCSSVariable.native.js +10 -0
- package/dist/esm/helpers/registerCSSVariable.native.js.map +6 -0
- package/dist/esm/helpers/themeable.native.js +29 -0
- package/dist/esm/helpers/themeable.native.js.map +6 -0
- package/dist/esm/helpers/themes.native.js +17 -0
- package/dist/esm/helpers/themes.native.js.map +6 -0
- package/dist/esm/helpers/timer.native.js +11 -0
- package/dist/esm/helpers/timer.native.js.map +6 -0
- package/dist/esm/helpers/withStaticProperties.native.js +20 -0
- package/dist/esm/helpers/withStaticProperties.native.js.map +6 -0
- package/dist/esm/hooks/getThemeUnwrapped.native.js +6 -0
- package/dist/esm/hooks/getThemeUnwrapped.native.js.map +6 -0
- package/dist/esm/hooks/useAnimationDriver.js +8 -0
- package/dist/esm/hooks/useAnimationDriver.js.map +6 -0
- package/dist/esm/hooks/useConfiguration.native.js +15 -0
- package/dist/esm/hooks/useConfiguration.native.js.map +6 -0
- package/dist/esm/hooks/useDisableSSR.native.js +15 -0
- package/dist/esm/hooks/useDisableSSR.native.js.map +6 -0
- package/dist/esm/hooks/useId.native.js +5 -0
- package/dist/esm/hooks/useId.native.js.map +6 -0
- package/dist/esm/hooks/useIsTouchDevice.native.js +7 -0
- package/dist/esm/hooks/useIsTouchDevice.native.js.map +6 -0
- package/dist/esm/hooks/useMedia.native.js +155 -0
- package/dist/esm/hooks/useMedia.native.js.map +6 -0
- package/dist/esm/hooks/useMemoDebug.native.js +10 -0
- package/dist/esm/hooks/useMemoDebug.native.js.map +6 -0
- package/dist/esm/hooks/useProps.native.js +49 -0
- package/dist/esm/hooks/useProps.native.js.map +6 -0
- package/dist/esm/hooks/useStyle.js +32 -0
- package/dist/esm/hooks/useStyle.js.map +6 -0
- package/dist/esm/hooks/useTheme.js +4 -4
- package/dist/esm/hooks/useTheme.js.map +1 -1
- package/dist/esm/hooks/useTheme.native.js +224 -0
- package/dist/esm/hooks/useTheme.native.js.map +6 -0
- package/dist/esm/hooks/useThemeName.native.js +17 -0
- package/dist/esm/hooks/useThemeName.native.js.map +6 -0
- package/dist/esm/index.native.js +90 -0
- package/dist/esm/index.native.js.map +6 -0
- package/dist/esm/inject-styles.native.js +12 -0
- package/dist/esm/inject-styles.native.js.map +6 -0
- package/dist/esm/insertFont.native.js +48 -0
- package/dist/esm/insertFont.native.js.map +6 -0
- package/dist/esm/interfaces/CSSColorNames.native.js +1 -0
- package/dist/esm/interfaces/CSSColorNames.native.js.map +6 -0
- package/dist/esm/interfaces/GetRef.native.js +1 -0
- package/dist/esm/interfaces/GetRef.native.js.map +6 -0
- package/dist/esm/interfaces/Role.native.js +1 -0
- package/dist/esm/interfaces/Role.native.js.map +6 -0
- package/dist/esm/setupHooks.native.js +9 -0
- package/dist/esm/setupHooks.native.js.map +6 -0
- package/dist/esm/setupReactNative.native.js +30 -0
- package/dist/esm/setupReactNative.native.js.map +6 -0
- package/dist/esm/styled.native.js +56 -0
- package/dist/esm/styled.native.js.map +6 -0
- package/dist/esm/types.native.js +1 -0
- package/dist/esm/types.native.js.map +6 -0
- package/dist/esm/views/AnimationDriverProvider.js +7 -0
- package/dist/esm/views/AnimationDriverProvider.js.map +6 -0
- package/dist/esm/views/Configuration.native.js +7 -0
- package/dist/esm/views/Configuration.native.js.map +6 -0
- package/dist/esm/views/FontLanguage.native.js +11 -0
- package/dist/esm/views/FontLanguage.native.js.map +6 -0
- package/dist/esm/views/FontLanguage.types.native.js +1 -0
- package/dist/esm/views/FontLanguage.types.native.js.map +6 -0
- package/dist/esm/views/Slot.native.js +40 -0
- package/dist/esm/views/Slot.native.js.map +6 -0
- package/dist/esm/views/Stack.native.js +12 -0
- package/dist/esm/views/Stack.native.js.map +6 -0
- package/dist/esm/views/TamaguiProvider.native.js +34 -0
- package/dist/esm/views/TamaguiProvider.native.js.map +6 -0
- package/dist/esm/views/Text.native.js +32 -0
- package/dist/esm/views/Text.native.js.map +6 -0
- package/dist/esm/views/Theme.native.js +85 -0
- package/dist/esm/views/Theme.native.js.map +6 -0
- package/dist/esm/views/ThemeDebug.native.js +11 -0
- package/dist/esm/views/ThemeDebug.native.js.map +6 -0
- package/dist/esm/views/ThemeProvider.native.js +26 -0
- package/dist/esm/views/ThemeProvider.native.js.map +6 -0
- package/dist/esm/views/View.native.js +13 -0
- package/dist/esm/views/View.native.js.map +6 -0
- package/package.json +9 -9
- package/src/createComponent.tsx +2 -0
- package/src/helpers/propMapper.ts +36 -25
- package/src/hooks/useTheme.tsx +23 -6
- package/src/types.tsx +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/propMapper.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +11 -1
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/types.d.ts +1 -1
- package/types/types.d.ts.map +1 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
+
import { useRef, useSyncExternalStore } from "react";
|
|
3
|
+
import { getConfig } from "../config";
|
|
4
|
+
import { createProxy } from "../helpers/createProxy";
|
|
5
|
+
import { matchMedia } from "../helpers/matchMedia";
|
|
6
|
+
import { pseudoDescriptors } from "../helpers/pseudoDescriptors";
|
|
7
|
+
import { getDisableSSR, useDisableSSR } from "./useDisableSSR";
|
|
8
|
+
let mediaState = (
|
|
9
|
+
// development only safeguard
|
|
10
|
+
process.env.NODE_ENV === "development" ? createProxy(
|
|
11
|
+
{},
|
|
12
|
+
{
|
|
13
|
+
get(target, key) {
|
|
14
|
+
if (typeof key == "string" && key[0] === "$" && // dont error on $$typeof
|
|
15
|
+
key[1] !== "$")
|
|
16
|
+
throw new Error(`Access mediaState should not use "$": ${key}`);
|
|
17
|
+
return Reflect.get(target, key);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
) : {}
|
|
21
|
+
);
|
|
22
|
+
const mediaQueryConfig = {}, getMedia = () => mediaState, mediaKeys = /* @__PURE__ */ new Set(), isMediaKey = (key) => mediaKeys.has(key) || key[0] === "$" && (key.startsWith("$platform-") || key.startsWith("$theme-") || key.startsWith("$group-"));
|
|
23
|
+
let initState;
|
|
24
|
+
const defaultMediaImportance = Object.keys(pseudoDescriptors).length;
|
|
25
|
+
let mediaKeysOrdered;
|
|
26
|
+
const getMediaKeyImportance = (key) => {
|
|
27
|
+
if (process.env.NODE_ENV === "development" && key[0] === "$")
|
|
28
|
+
throw new Error("use short key");
|
|
29
|
+
return getConfig().settings.mediaPropOrder ? defaultMediaImportance : mediaKeysOrdered.indexOf(key) + 100;
|
|
30
|
+
}, dispose = /* @__PURE__ */ new Set();
|
|
31
|
+
let mediaVersion = 0;
|
|
32
|
+
const configureMedia = (config) => {
|
|
33
|
+
const { media, mediaQueryDefaultActive } = config;
|
|
34
|
+
if (media) {
|
|
35
|
+
mediaVersion++;
|
|
36
|
+
for (const key in media)
|
|
37
|
+
mediaState[key] = mediaQueryDefaultActive?.[key] || !1, mediaKeys.add(`$${key}`);
|
|
38
|
+
Object.assign(mediaQueryConfig, media), initState = { ...mediaState }, mediaKeysOrdered = Object.keys(media), config.disableSSR ? setupMediaListeners() : updateCurrentState();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
function unlisten() {
|
|
42
|
+
dispose.forEach((cb) => cb()), dispose.clear();
|
|
43
|
+
}
|
|
44
|
+
let setupVersion = -1;
|
|
45
|
+
function setupMediaListeners() {
|
|
46
|
+
if (setupVersion !== mediaVersion) {
|
|
47
|
+
setupVersion = mediaVersion, unlisten();
|
|
48
|
+
for (const key in mediaQueryConfig) {
|
|
49
|
+
let update2 = function() {
|
|
50
|
+
const next = !!getMatch().matches;
|
|
51
|
+
next !== mediaState[key] && (mediaState = { ...mediaState, [key]: next }, updateCurrentState());
|
|
52
|
+
};
|
|
53
|
+
var update = update2;
|
|
54
|
+
const str = mediaObjectToString(mediaQueryConfig[key], key), getMatch = () => matchMedia(str), match = getMatch();
|
|
55
|
+
if (!match)
|
|
56
|
+
throw new Error("\u26A0\uFE0F No match");
|
|
57
|
+
match.addListener(update2), dispose.add(() => {
|
|
58
|
+
match.removeListener(update2);
|
|
59
|
+
}), update2();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function useMediaListeners(config) {
|
|
64
|
+
config.disableSSR || useIsomorphicLayoutEffect(() => {
|
|
65
|
+
setupMediaListeners();
|
|
66
|
+
}, []);
|
|
67
|
+
}
|
|
68
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
69
|
+
let flushing = !1, flushVersion = -1;
|
|
70
|
+
function updateCurrentState() {
|
|
71
|
+
flushing && flushVersion === mediaVersion || (flushVersion = mediaVersion, flushing = !0, Promise.resolve().then(() => {
|
|
72
|
+
flushing = !1, listeners.forEach((cb) => cb(mediaState));
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
const shouldUpdate = /* @__PURE__ */ new WeakMap();
|
|
76
|
+
function setMediaShouldUpdate(ref, props) {
|
|
77
|
+
return shouldUpdate.set(ref, props);
|
|
78
|
+
}
|
|
79
|
+
function subscribe(subscriber) {
|
|
80
|
+
return listeners.add(subscriber), () => listeners.delete(subscriber);
|
|
81
|
+
}
|
|
82
|
+
function useMedia(uid, componentContext) {
|
|
83
|
+
const internal = useRef(), initialState = ((componentContext ? getDisableSSR(componentContext) : useDisableSSR()) ? mediaState : initState) || {}, state = useSyncExternalStore(
|
|
84
|
+
subscribe,
|
|
85
|
+
() => {
|
|
86
|
+
if (!internal.current)
|
|
87
|
+
return initialState;
|
|
88
|
+
const { touched, prev } = internal.current, componentState = uid ? shouldUpdate.get(uid) : void 0;
|
|
89
|
+
if (componentState && componentState.enabled === !1)
|
|
90
|
+
return prev;
|
|
91
|
+
const testKeys = componentState?.keys ?? ((!componentState || componentState.enabled) && touched ? [...touched] : null);
|
|
92
|
+
return !testKeys || testKeys?.every((key) => mediaState[key] === prev[key]) ? prev : (internal.current.prev = mediaState, mediaState);
|
|
93
|
+
},
|
|
94
|
+
() => initialState
|
|
95
|
+
);
|
|
96
|
+
return new Proxy(state, {
|
|
97
|
+
get(_, key) {
|
|
98
|
+
return typeof key == "string" && (internal.current ||= { prev: initialState }, internal.current.touched ||= /* @__PURE__ */ new Set(), internal.current.touched.add(key)), Reflect.get(state, key);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
const getMediaImportanceIfMoreImportant = (mediaKey, key, importancesUsed, isSizeMedia) => {
|
|
103
|
+
const conf = getConfig(), importance = isSizeMedia && !conf.settings.mediaPropOrder ? getMediaKeyImportance(mediaKey) : defaultMediaImportance;
|
|
104
|
+
return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null;
|
|
105
|
+
};
|
|
106
|
+
function mergeMediaByImportance(onto, mediaKey, key, value, importancesUsed, isSizeMedia, importanceBump) {
|
|
107
|
+
let importance = getMediaImportanceIfMoreImportant(
|
|
108
|
+
mediaKey,
|
|
109
|
+
key,
|
|
110
|
+
importancesUsed,
|
|
111
|
+
isSizeMedia
|
|
112
|
+
);
|
|
113
|
+
return importanceBump && (importance = (importance || 0) + importanceBump), importance === null ? !1 : (importancesUsed[key] = importance, onto[key] = value, !0);
|
|
114
|
+
}
|
|
115
|
+
function camelToHyphen(str) {
|
|
116
|
+
return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
|
|
117
|
+
}
|
|
118
|
+
const cache = /* @__PURE__ */ new WeakMap(), cachedMediaKeyToQuery = {};
|
|
119
|
+
function mediaObjectToString(query, key) {
|
|
120
|
+
if (typeof query == "string")
|
|
121
|
+
return query;
|
|
122
|
+
if (cache.has(query))
|
|
123
|
+
return cache.get(query);
|
|
124
|
+
const res = Object.entries(query).map(([feature, value]) => (feature = camelToHyphen(feature), typeof value == "string" ? `(${feature}: ${value})` : (typeof value == "number" && /[height|width]$/.test(feature) && (value = `${value}px`), `(${feature}: ${value})`))).join(" and ");
|
|
125
|
+
return key && (cachedMediaKeyToQuery[key] = res), cache.set(query, res), res;
|
|
126
|
+
}
|
|
127
|
+
function mediaKeyToQuery(key) {
|
|
128
|
+
return cachedMediaKeyToQuery[key] || mediaObjectToString(mediaQueryConfig[key], key);
|
|
129
|
+
}
|
|
130
|
+
function mediaKeyMatch(key, dimensions) {
|
|
131
|
+
const mediaQueries = mediaQueryConfig[key];
|
|
132
|
+
return Object.keys(mediaQueries).every((query) => {
|
|
133
|
+
const expectedVal = +mediaQueries[query], isMax = query.startsWith("max"), isWidth = query.endsWith("Width"), givenVal = dimensions[isWidth ? "width" : "height"];
|
|
134
|
+
return isMax ? givenVal < expectedVal : givenVal > expectedVal;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
export {
|
|
138
|
+
configureMedia,
|
|
139
|
+
getMedia,
|
|
140
|
+
getMediaImportanceIfMoreImportant,
|
|
141
|
+
getMediaKeyImportance,
|
|
142
|
+
isMediaKey,
|
|
143
|
+
mediaKeyMatch,
|
|
144
|
+
mediaKeyToQuery,
|
|
145
|
+
mediaKeys,
|
|
146
|
+
mediaObjectToString,
|
|
147
|
+
mediaQueryConfig,
|
|
148
|
+
mediaState,
|
|
149
|
+
mergeMediaByImportance,
|
|
150
|
+
setMediaShouldUpdate,
|
|
151
|
+
setupMediaListeners,
|
|
152
|
+
useMedia,
|
|
153
|
+
useMediaListeners
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=useMedia.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useMedia.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["update"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
const useMemoDebug = (fn, args) => {
|
|
3
|
+
let run = 1;
|
|
4
|
+
const res = useMemo(() => (run = 0, fn()), args);
|
|
5
|
+
return run === 1 && console.log("saved a run"), res;
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
useMemoDebug
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useMemoDebug.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { ComponentContext } from "../contexts/ComponentContext";
|
|
3
|
+
import { defaultComponentStateMounted } from "../defaultComponentState";
|
|
4
|
+
import { useSplitStyles } from "../helpers/getSplitStyles";
|
|
5
|
+
import { Stack } from "../views/Stack";
|
|
6
|
+
import { useMedia } from "./useMedia";
|
|
7
|
+
import { useThemeWithState } from "./useTheme";
|
|
8
|
+
function useProps(props, opts) {
|
|
9
|
+
const [propsOut, styleOut] = usePropsAndStyle(props, {
|
|
10
|
+
...opts,
|
|
11
|
+
noExpand: !0,
|
|
12
|
+
noNormalize: !0,
|
|
13
|
+
resolveValues: "none"
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
...propsOut,
|
|
17
|
+
...styleOut
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function useStyle(props, opts) {
|
|
21
|
+
return usePropsAndStyle(props, opts)[1];
|
|
22
|
+
}
|
|
23
|
+
function usePropsAndStyle(props, opts) {
|
|
24
|
+
const staticConfig = opts?.forComponent?.staticConfig ?? Stack.staticConfig, [themeState, theme] = useThemeWithState({
|
|
25
|
+
componentName: staticConfig.componentName
|
|
26
|
+
}), componentContext = useContext(ComponentContext), media = useMedia(), splitStyles = useSplitStyles(
|
|
27
|
+
props,
|
|
28
|
+
staticConfig,
|
|
29
|
+
theme,
|
|
30
|
+
themeState.state?.name || "",
|
|
31
|
+
defaultComponentStateMounted,
|
|
32
|
+
{
|
|
33
|
+
isAnimated: !1,
|
|
34
|
+
mediaState: media,
|
|
35
|
+
noSkip: !0,
|
|
36
|
+
noClassNames: !0,
|
|
37
|
+
...opts
|
|
38
|
+
},
|
|
39
|
+
null,
|
|
40
|
+
componentContext
|
|
41
|
+
);
|
|
42
|
+
return [splitStyles.viewProps, splitStyles.style, theme, media];
|
|
43
|
+
}
|
|
44
|
+
export {
|
|
45
|
+
useProps,
|
|
46
|
+
usePropsAndStyle,
|
|
47
|
+
useStyle
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=useProps.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useProps.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AACjC,SAAS,oCAAoC;AAC7C,SAAS,sBAAsB;AAE/B,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAqB3B,SAAS,SACd,OACA,MACmB;AACnB,QAAM,CAAC,UAAU,QAAQ,IAAI,iBAAiB,OAAO;AAAA,IACnD,GAAG;AAAA,IACH,UAAU;AAAA,IACV,aAAa;AAAA,IACb,eAAe;AAAA,EACjB,CAAC;AACD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAQO,SAAS,SACd,OACA,MACmB;AACnB,SAAO,iBAAiB,OAAO,IAAI,EAAE,CAAC;AACxC;AAQO,SAAS,iBACd,OACA,MACoE;AACpE,QAAM,eAAe,MAAM,cAAc,gBAAgB,MAAM,cACzD,CAAC,YAAY,KAAK,IAAI,kBAAkB;AAAA,IAC5C,eAAe,aAAa;AAAA,EAC9B,CAAC,GACK,mBAAmB,WAAW,gBAAgB,GAC9C,QAAQ,SAAS,GACjB,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,OAAO,QAAQ;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,GAAG;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,CAAC,YAAY,WAAW,YAAY,OAAO,OAAO,KAAK;AAChE;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { ComponentContext } from "../contexts/ComponentContext";
|
|
3
|
+
import { defaultComponentState } from "../createComponent";
|
|
4
|
+
import { useSplitStyles } from "../helpers/getSplitStyles";
|
|
5
|
+
import { useMedia } from "./useMedia";
|
|
6
|
+
import { useThemeWithState } from "./useTheme";
|
|
7
|
+
function useStyle(base, style, options) {
|
|
8
|
+
const isText = base.staticConfig.isText, componentContext = useContext(ComponentContext), [themeState] = useThemeWithState({}), media = useMedia(), out = useSplitStyles(
|
|
9
|
+
style,
|
|
10
|
+
base.staticConfig,
|
|
11
|
+
themeState.state.theme,
|
|
12
|
+
themeState.state.name,
|
|
13
|
+
defaultComponentState,
|
|
14
|
+
{
|
|
15
|
+
...options,
|
|
16
|
+
mediaState: media,
|
|
17
|
+
resolveVariablesAs: "auto"
|
|
18
|
+
},
|
|
19
|
+
null,
|
|
20
|
+
componentContext,
|
|
21
|
+
isText ? "span" : "div",
|
|
22
|
+
options?.debug
|
|
23
|
+
);
|
|
24
|
+
return {
|
|
25
|
+
style: Object.keys(out.style).length ? out.style : null,
|
|
26
|
+
classNames: out.classNames
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
useStyle
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=useStyle.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useStyle.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AACtC,SAAS,sBAAsB;AAQ/B,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAE3B,SAAS,SAId,MACA,OACA,SACA;AACA,QAAM,SAAS,KAAK,aAAa,QAC3B,mBAAmB,WAAW,gBAAgB,GAC9C,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,GACnC,QAAQ,SAAS,GACjB,MAAM;AAAA,IACV;AAAA,IACA,KAAK;AAAA,IACL,WAAW,MAAM;AAAA,IACjB,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,MACE,GAAI;AAAA,MACJ,YAAY;AAAA,MACZ,oBAAoB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,SAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL,OAAO,OAAO,KAAK,IAAI,KAAK,EAAE,SAAS,IAAI,QAAQ;AAAA,IACnD,YAAY,IAAI;AAAA,EAClB;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -74,7 +74,7 @@ function getThemeProxied({ theme, name }, deopt = !1, themeManager, keys, debug)
|
|
|
74
74
|
if (subkey === "val")
|
|
75
75
|
track(keyString);
|
|
76
76
|
else if (subkey === "get")
|
|
77
|
-
return () => getVariable(val);
|
|
77
|
+
return (platform) => getVariable(val);
|
|
78
78
|
return Reflect.get(val, subkey);
|
|
79
79
|
}
|
|
80
80
|
});
|
|
@@ -113,15 +113,15 @@ const activeThemeManagers = /* @__PURE__ */ new Set(), useChangeThemeEffect = (p
|
|
|
113
113
|
const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
|
|
114
114
|
forced && setThemeState((prev) => createState(prev, !0));
|
|
115
115
|
}), disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {
|
|
116
|
-
const force = shouldUpdate?.() || props.deopt || void 0,
|
|
116
|
+
const force = shouldUpdate?.() || props.deopt || void 0, shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
|
|
117
117
|
process.env.NODE_ENV === "development" && props.debug && console.log(" \u{1F538} onChange", themeManager.id, {
|
|
118
118
|
force,
|
|
119
|
-
|
|
119
|
+
shouldTryUpdate,
|
|
120
120
|
props,
|
|
121
121
|
name,
|
|
122
122
|
manager,
|
|
123
123
|
keys
|
|
124
|
-
}),
|
|
124
|
+
}), shouldTryUpdate && setThemeState(createState);
|
|
125
125
|
}, themeManager.id);
|
|
126
126
|
return () => {
|
|
127
127
|
selfListenerDispose(), disposeChangeListener?.(), activeThemeManagers.delete(themeManager);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,UAAiB,gBAAgB;AAC1C,SAAS,YAAY,WAAW,iBAAiB,SAAS,QAAQ,gBAAgB;AAElF,SAAS,iBAAiB;AAC1B,SAAmB,mBAAmB;AACtC,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,2BAA2B;AASpC,SAAS,yBAAyB;AASlC,MAAM,aAAa,EAAE,MAAM,KAAK;AAEhC,IAAI;AACJ,SAAS,yBAAyB;AAChC,MAAI;AAAQ,WAAO;AACnB,QAAM,SAAS,UAAU,GACnB,OAAO,OAAO,OAAO,QAAQ,UAAU,OAAO,KAAK,OAAO,MAAM,EAAE,CAAC,GACnE,eAAe,OAAO,OAAO,IAAI;AACvC,kBAAS,gBAAgB,EAAE,OAAO,cAAc,KAAK,CAAC,GAC/C;AACT;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["_", "themeManager", "state", "isNewTheme", "mounted"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { isClient, isIos, isServer } from "@tamagui/constants";
|
|
2
|
+
import { useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { getConfig } from "../config";
|
|
4
|
+
import { getVariable } from "../createVariable";
|
|
5
|
+
import { createProxy } from "../helpers/createProxy";
|
|
6
|
+
import {
|
|
7
|
+
ThemeManager,
|
|
8
|
+
getHasThemeUpdatingProps
|
|
9
|
+
} from "../helpers/ThemeManager";
|
|
10
|
+
import { ThemeManagerContext } from "../helpers/ThemeManagerContext";
|
|
11
|
+
import { GetThemeUnwrapped } from "./getThemeUnwrapped";
|
|
12
|
+
const emptyProps = { name: null };
|
|
13
|
+
let cached;
|
|
14
|
+
function getDefaultThemeProxied() {
|
|
15
|
+
if (cached)
|
|
16
|
+
return cached;
|
|
17
|
+
const config = getConfig(), name = config.themes.light ? "light" : Object.keys(config.themes)[0], defaultTheme = config.themes[name];
|
|
18
|
+
return cached = getThemeProxied({ theme: defaultTheme, name }), cached;
|
|
19
|
+
}
|
|
20
|
+
const useTheme = (props = emptyProps) => {
|
|
21
|
+
const [_, theme] = useThemeWithState(props);
|
|
22
|
+
return theme || getDefaultThemeProxied();
|
|
23
|
+
}, useThemeWithState = (props) => {
|
|
24
|
+
const keys = useRef([]), changedThemeState = useChangeThemeEffect(
|
|
25
|
+
props,
|
|
26
|
+
!1,
|
|
27
|
+
keys.current,
|
|
28
|
+
isServer ? void 0 : () => {
|
|
29
|
+
const next = props.shouldUpdate?.() ?? (keys.current.length > 0 ? !0 : void 0);
|
|
30
|
+
return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.log(" \u{1F3A8} useTheme() shouldUpdate?", next, {
|
|
31
|
+
shouldUpdateProp: props.shouldUpdate?.(),
|
|
32
|
+
keys: [...keys.current]
|
|
33
|
+
}), next;
|
|
34
|
+
}
|
|
35
|
+
), { themeManager, state } = changedThemeState;
|
|
36
|
+
state?.theme || process.env.NODE_ENV === "development" && process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.warn(
|
|
37
|
+
`[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(
|
|
38
|
+
props
|
|
39
|
+
)}).
|
|
40
|
+
|
|
41
|
+
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`
|
|
42
|
+
);
|
|
43
|
+
const themeProxied = useMemo(() => !themeManager || !state?.theme ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state, themeManager, props.deopt, props.debug]);
|
|
44
|
+
return process.env.NODE_ENV === "development" && props.debug === "verbose" && (console.groupCollapsed(" \u{1F539} useTheme =>", state?.name), console.log("returning state", changedThemeState, "from props", props), console.groupEnd()), [changedThemeState, themeProxied];
|
|
45
|
+
};
|
|
46
|
+
function getThemeProxied({ theme, name }, deopt = !1, themeManager, keys, debug) {
|
|
47
|
+
if (!theme)
|
|
48
|
+
return {};
|
|
49
|
+
const config = getConfig();
|
|
50
|
+
function track(key) {
|
|
51
|
+
keys && !keys.includes(key) && (keys.push(key), process.env.NODE_ENV === "development" && debug && console.log(` \u{1F3A8} useTheme() tracking new key: ${key}`));
|
|
52
|
+
}
|
|
53
|
+
return createProxy(theme, {
|
|
54
|
+
has(_, key) {
|
|
55
|
+
if (Reflect.has(theme, key))
|
|
56
|
+
return !0;
|
|
57
|
+
if (typeof key == "string")
|
|
58
|
+
return key[0] === "$" && (key = key.slice(1)), themeManager?.allKeys.has(key);
|
|
59
|
+
},
|
|
60
|
+
get(_, key) {
|
|
61
|
+
if (key === GetThemeUnwrapped)
|
|
62
|
+
return theme;
|
|
63
|
+
if (
|
|
64
|
+
// dont ask me, idk why but on hermes you can see that useTheme()[undefined] passes in STRING undefined to proxy
|
|
65
|
+
// if someone is crazy enough to use "undefined" as a theme key then this not working is on them
|
|
66
|
+
key !== "undefined" && typeof key == "string"
|
|
67
|
+
) {
|
|
68
|
+
const keyString = key[0] === "$" ? key.slice(1) : key, val = theme[keyString];
|
|
69
|
+
if (val && typeof val == "object")
|
|
70
|
+
return new Proxy(val, {
|
|
71
|
+
// when they touch the actual value we only track it
|
|
72
|
+
// if its a variable (web), its ignored!
|
|
73
|
+
get(_2, subkey) {
|
|
74
|
+
if (subkey === "val")
|
|
75
|
+
track(keyString);
|
|
76
|
+
else if (subkey === "get")
|
|
77
|
+
return (platform) => {
|
|
78
|
+
const outVal = getVariable(val);
|
|
79
|
+
if (platform !== "web" && isIos && !deopt && config.settings.fastSchemeChange) {
|
|
80
|
+
const isDark = name.startsWith("dark"), isLight = !isDark && name.startsWith("light");
|
|
81
|
+
if (isDark || isLight) {
|
|
82
|
+
const oppositeThemeName = name.replace(
|
|
83
|
+
isDark ? "dark" : "light",
|
|
84
|
+
isDark ? "light" : "dark"
|
|
85
|
+
), oppositeTheme = config.themes[oppositeThemeName], oppositeVal = getVariable(oppositeTheme?.[keyString]);
|
|
86
|
+
if (oppositeVal)
|
|
87
|
+
return {
|
|
88
|
+
dynamic: {
|
|
89
|
+
dark: isDark ? outVal : oppositeVal,
|
|
90
|
+
light: isLight ? outVal : oppositeVal
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return track(keyString), outVal;
|
|
96
|
+
};
|
|
97
|
+
return Reflect.get(val, subkey);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return Reflect.get(_, key);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const activeThemeManagers = /* @__PURE__ */ new Set(), useChangeThemeEffect = (props, isRoot = !1, keys, shouldUpdate) => {
|
|
106
|
+
const { disable } = props, parentManager = useContext(ThemeManagerContext);
|
|
107
|
+
if (!isRoot && !parentManager || disable)
|
|
108
|
+
return {
|
|
109
|
+
isNewTheme: !1,
|
|
110
|
+
state: parentManager?.state,
|
|
111
|
+
themeManager: parentManager
|
|
112
|
+
};
|
|
113
|
+
const [themeState, setThemeState] = useState(createState), { state, mounted, isNewTheme, themeManager } = themeState, isInversingOnMount = !!(!themeState.mounted && props.inverse);
|
|
114
|
+
function getShouldUpdateTheme(manager = themeManager, nextState, prevState = state, forceShouldChange = !1) {
|
|
115
|
+
const forceUpdate = shouldUpdate?.();
|
|
116
|
+
if (!manager || !forceShouldChange && forceUpdate === !1)
|
|
117
|
+
return;
|
|
118
|
+
const next = nextState || manager.getState(props, parentManager);
|
|
119
|
+
if (forceShouldChange)
|
|
120
|
+
return next;
|
|
121
|
+
if (next && !(forceUpdate !== !0 && !manager.getStateShouldChange(next, prevState)))
|
|
122
|
+
return next;
|
|
123
|
+
}
|
|
124
|
+
if (isServer || (useLayoutEffect(() => {
|
|
125
|
+
if (!themeManager)
|
|
126
|
+
return;
|
|
127
|
+
if (props.inverse && !mounted) {
|
|
128
|
+
setThemeState({ ...themeState, mounted: !0 });
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
isNewTheme && themeManager && activeThemeManagers.add(themeManager), (isNewTheme || getShouldUpdateTheme(themeManager)) && setThemeState(createState);
|
|
132
|
+
const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
|
|
133
|
+
forced && setThemeState((prev) => createState(prev, !0));
|
|
134
|
+
}), disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {
|
|
135
|
+
const force = shouldUpdate?.() || props.deopt || props["disable-child-theme"], shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
|
|
136
|
+
process.env.NODE_ENV === "development" && props.debug && console.log(" \u{1F538} onChange", themeManager.id, {
|
|
137
|
+
force,
|
|
138
|
+
shouldTryUpdate,
|
|
139
|
+
props,
|
|
140
|
+
name,
|
|
141
|
+
manager,
|
|
142
|
+
keys
|
|
143
|
+
}), shouldTryUpdate && setThemeState(createState);
|
|
144
|
+
}, themeManager.id);
|
|
145
|
+
return () => {
|
|
146
|
+
selfListenerDispose(), disposeChangeListener?.(), activeThemeManagers.delete(themeManager);
|
|
147
|
+
};
|
|
148
|
+
}, [
|
|
149
|
+
themeManager,
|
|
150
|
+
parentManager,
|
|
151
|
+
isNewTheme,
|
|
152
|
+
props.componentName,
|
|
153
|
+
props.inverse,
|
|
154
|
+
props.name,
|
|
155
|
+
props.reset,
|
|
156
|
+
mounted
|
|
157
|
+
]), process.env.NODE_ENV === "development" && props.debug !== "profile" && useEffect(() => (globalThis.TamaguiThemeManagers ??= /* @__PURE__ */ new Set(), globalThis.TamaguiThemeManagers.add(themeManager), () => {
|
|
158
|
+
globalThis.TamaguiThemeManagers.delete(themeManager);
|
|
159
|
+
}), [themeManager])), isInversingOnMount)
|
|
160
|
+
return {
|
|
161
|
+
isNewTheme: !1,
|
|
162
|
+
themeManager: parentManager,
|
|
163
|
+
state: {
|
|
164
|
+
name: "",
|
|
165
|
+
...parentManager?.state,
|
|
166
|
+
className: ""
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
return {
|
|
170
|
+
state,
|
|
171
|
+
isNewTheme,
|
|
172
|
+
themeManager
|
|
173
|
+
};
|
|
174
|
+
function createState(prev, force = !1) {
|
|
175
|
+
if (prev && shouldUpdate?.() === !1)
|
|
176
|
+
return prev;
|
|
177
|
+
let themeManager2 = parentManager, state2;
|
|
178
|
+
if (getHasThemeUpdatingProps(props)) {
|
|
179
|
+
const getNewThemeManager = () => new ThemeManager(props, isRoot ? "root" : parentManager);
|
|
180
|
+
if (prev?.themeManager) {
|
|
181
|
+
themeManager2 = prev.themeManager;
|
|
182
|
+
const forceChange = !!keys?.length, next = themeManager2.getState(props, parentManager), nextState = getShouldUpdateTheme(
|
|
183
|
+
themeManager2,
|
|
184
|
+
next,
|
|
185
|
+
prev.state,
|
|
186
|
+
forceChange
|
|
187
|
+
);
|
|
188
|
+
nextState ? (state2 = nextState, prev.isNewTheme ? themeManager2.updateState(nextState) : themeManager2 = getNewThemeManager()) : prev.isNewTheme && parentManager && !next && (themeManager2 = parentManager);
|
|
189
|
+
} else
|
|
190
|
+
themeManager2 = getNewThemeManager(), state2 = { ...themeManager2.state };
|
|
191
|
+
}
|
|
192
|
+
const isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse), mounted2 = props.inverse ? isRoot || prev?.mounted : !0;
|
|
193
|
+
if (state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager)), !force && state2?.name === prev?.state?.name)
|
|
194
|
+
return prev;
|
|
195
|
+
const response = {
|
|
196
|
+
state: state2,
|
|
197
|
+
themeManager: themeManager2,
|
|
198
|
+
isNewTheme: isNewTheme2,
|
|
199
|
+
mounted: mounted2
|
|
200
|
+
};
|
|
201
|
+
if (process.env.NODE_ENV === "development" && props.debug && isClient) {
|
|
202
|
+
console.groupCollapsed(` \u{1F537} ${themeManager2.id} useChangeThemeEffect createState`);
|
|
203
|
+
const parentState = { ...parentManager?.state }, parentId = parentManager?.id, themeManagerState = { ...themeManager2.state };
|
|
204
|
+
console.log({
|
|
205
|
+
props,
|
|
206
|
+
parentState,
|
|
207
|
+
parentId,
|
|
208
|
+
themeManager: themeManager2,
|
|
209
|
+
prev,
|
|
210
|
+
response,
|
|
211
|
+
themeManagerState
|
|
212
|
+
}), console.groupEnd();
|
|
213
|
+
}
|
|
214
|
+
return response;
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
export {
|
|
218
|
+
activeThemeManagers,
|
|
219
|
+
getThemeProxied,
|
|
220
|
+
useChangeThemeEffect,
|
|
221
|
+
useTheme,
|
|
222
|
+
useThemeWithState
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=useTheme.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["_", "themeManager", "state", "isNewTheme", "mounted"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
+
import { useContext, useState } from "react";
|
|
3
|
+
import { ThemeManagerContext } from "../helpers/ThemeManagerContext";
|
|
4
|
+
function useThemeName(opts) {
|
|
5
|
+
const manager = useContext(ThemeManagerContext), [name, setName] = useState(manager?.state.name || "");
|
|
6
|
+
return useIsomorphicLayoutEffect(() => {
|
|
7
|
+
if (manager)
|
|
8
|
+
return setName(manager.state.name), manager.onChangeTheme((next, manager2) => {
|
|
9
|
+
const name2 = opts?.parent && manager2.state.parentName || next;
|
|
10
|
+
name2 && setName(name2);
|
|
11
|
+
});
|
|
12
|
+
}, [manager?.state.name]), name;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
useThemeName
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useThemeName.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useThemeName.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,YAAY,gBAAgB;AAErC,SAAS,2BAA2B;AAG7B,SAAS,aAAa,MAAqC;AAChE,QAAM,UAAU,WAAW,mBAAmB,GACxC,CAAC,MAAM,OAAO,IAAI,SAAS,SAAS,MAAM,QAAQ,EAAE;AAE1D,mCAA0B,MAAM;AAC9B,QAAK;AACL,qBAAQ,QAAQ,MAAM,IAAI,GACnB,QAAQ,cAAc,CAAC,MAAMA,aAAY;AAC9C,cAAMC,QAAO,MAAM,UAASD,SAAQ,MAAM,cAAc;AACxD,QAAKC,SACL,QAAQA,KAAI;AAAA,MACd,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,MAAM,IAAI,CAAC,GAEjB;AACT;",
|
|
5
|
+
"names": ["manager", "name"]
|
|
6
|
+
}
|