@tamagui/web 3.0.0-beta.1577.1 → 3.0.0-beta.1604.1
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/helpers/getSplitStyles.cjs +4 -3
- package/dist/cjs/helpers/getSplitStyles.native.cjs +4 -3
- package/dist/cjs/helpers/getSplitStyles.native.js +4 -3
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +24 -31
- package/dist/cjs/hooks/useMedia.native.cjs +42 -48
- package/dist/cjs/hooks/useMedia.native.js +42 -48
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +4 -3
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +4 -3
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +24 -31
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +42 -48
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/package.json +17 -17
- package/src/helpers/getSplitStyles.tsx +7 -3
- package/src/hooks/useMedia.tsx +28 -42
- package/src/types.tsx +1 -15
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/types.d.ts +1 -3
- package/types/types.d.ts.map +1 -1
|
@@ -209,41 +209,34 @@ function useMedia(componentContext, debug, uid) {
|
|
|
209
209
|
};
|
|
210
210
|
r.proxy = tracker;
|
|
211
211
|
}
|
|
212
|
-
r.getSnapshot = () => {
|
|
213
|
-
|
|
214
|
-
const ms2 = getMedia();
|
|
215
|
-
if (ms2 === r.lastState) {
|
|
216
|
-
return r.lastState;
|
|
217
|
-
}
|
|
218
|
-
if (r.componentContext?.mediaEmit) {
|
|
219
|
-
r.componentContext.mediaEmit(ms2);
|
|
220
|
-
r.pendingState = ms2;
|
|
221
|
-
return r.lastState;
|
|
222
|
-
}
|
|
223
|
-
r.lastState = ms2;
|
|
224
|
-
return ms2;
|
|
225
|
-
}
|
|
212
|
+
r.getSnapshot = (inRender) => {
|
|
213
|
+
const { lastState } = r;
|
|
226
214
|
const curKeys = mediaListenKeys(r);
|
|
227
|
-
const { lastState, pendingState } = r;
|
|
228
|
-
if (!curKeys.size) {
|
|
229
|
-
return lastState;
|
|
230
|
-
}
|
|
231
215
|
const ms = getMedia();
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
216
|
+
if (curKeys) {
|
|
217
|
+
let changed = false;
|
|
218
|
+
for (const key of curKeys) {
|
|
219
|
+
if (ms[key] !== (r.pendingState || lastState)[key]) {
|
|
220
|
+
if (process.env.NODE_ENV === "development" && r.debug) {
|
|
221
|
+
console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms[key]);
|
|
222
|
+
}
|
|
223
|
+
changed = true;
|
|
224
|
+
break;
|
|
236
225
|
}
|
|
237
|
-
if (r.componentContext?.mediaEmit) {
|
|
238
|
-
r.componentContext.mediaEmit(ms);
|
|
239
|
-
r.pendingState = ms;
|
|
240
|
-
return lastState;
|
|
241
|
-
}
|
|
242
|
-
r.lastState = ms;
|
|
243
|
-
return ms;
|
|
244
226
|
}
|
|
227
|
+
if (!changed) return lastState;
|
|
228
|
+
} else if (ms === lastState) {
|
|
229
|
+
return lastState;
|
|
230
|
+
}
|
|
231
|
+
const mediaEmit = r.componentContext?.mediaEmit;
|
|
232
|
+
if (mediaEmit) {
|
|
233
|
+
if (inRender) queueMicrotask(() => mediaEmit(ms));
|
|
234
|
+
else mediaEmit(ms);
|
|
235
|
+
r.pendingState = ms;
|
|
236
|
+
return lastState;
|
|
245
237
|
}
|
|
246
|
-
|
|
238
|
+
r.lastState = ms;
|
|
239
|
+
return ms;
|
|
247
240
|
};
|
|
248
241
|
internalRef.current = r;
|
|
249
242
|
} else {
|
|
@@ -261,7 +254,7 @@ function useMedia(componentContext, debug, uid) {
|
|
|
261
254
|
ref.keys.clear();
|
|
262
255
|
}
|
|
263
256
|
const [, forceUpdate] = useReducer(incReducer, 0);
|
|
264
|
-
const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();
|
|
257
|
+
const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);
|
|
265
258
|
ref.proxyTarget = state;
|
|
266
259
|
if (!ref.optimizeForFirstRender) {
|
|
267
260
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMedia.js","names":[],"sources":["esm/hooks/useMedia.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport {\n getMedia,\n mediaKeyMatch,\n mediaKeys,\n mediaQueryConfig,\n setMediaState\n} from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nlet initState;\nconst dispose = /* @__PURE__ */ new Set();\nlet mediaVersion = 0;\nconst configureMedia = (config) => {\n const { media } = config;\n const mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (const key in media) {\n getMedia()[key] = mediaQueryDefaultActive?.[key] || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = { ...getMedia() };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach((cb) => cb());\n dispose.clear();\n}\nlet setupVersion = -1;\nfunction setupMediaListeners() {\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (const key in mediaQueryConfig) {\n let update = function() {\n const next = !!getMatch().matches;\n if (next === getMedia()[key]) return;\n setMediaState({ ...getMedia(), [key]: next });\n updateMediaListeners();\n };\n const str = mediaObjectToString(mediaQueryConfig[key]);\n const getMatch = () => matchMedia(str);\n const match = getMatch();\n if (!match) {\n throw new Error(\n process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\n \"TAMAGUI_MEDIA_MATCH\",\n \"useMedia\",\n \"matchMedia returned no MediaQueryList\",\n \"Provide a matchMedia implementation that returns a MediaQueryList\",\n \"key,query,platform\",\n { key, query: str, platform: isWeb ? \"web\" : \"native\" }\n ) : \"\\u274C Error 013\"\n );\n }\n match.addListener(update);\n dispose.add(() => {\n match.removeListener(update);\n });\n update();\n }\n}\nconst listenersByKey = /* @__PURE__ */ new Map();\nconst globalListeners = /* @__PURE__ */ new Set();\nlet publishedState = null;\nconst _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n const media = getMedia();\n const prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n const woken = /* @__PURE__ */ new Set();\n for (const key of mediaKeys) {\n if (prev !== null && media[key] === prev[key]) continue;\n const bucket = listenersByKey.get(key);\n if (bucket) {\n for (const cb of bucket) woken.add(cb);\n }\n }\n for (const cb of woken) {\n _mediaListenerStats.notified++;\n cb(media);\n }\n }\n globalListeners.forEach((cb) => {\n _mediaListenerStats.notified++;\n cb(media);\n });\n}\nconst States = /* @__PURE__ */ new WeakMap();\nlet touchTrackerProto = null;\nconst refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n const proto = {};\n for (const key of mediaKeys) {\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n const slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys, optimizeForFirstRender = false) {\n if (optimizeForFirstRender) return;\n const cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? States.get(ref.uid)?.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n const keys = mediaListenKeys(ref);\n const cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n for (const key of keys) {\n let bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n}\nfunction unindexMediaListener(ref) {\n const keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n for (const key of keys) {\n const bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n for (const key of b) {\n if (!a.has(key)) return false;\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n const internalRef = useRef(null);\n if (!internalRef.current) {\n const initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n const optimizeForFirstRender = isOptimizedForFirstRender();\n const r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n const tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = () => {\n if (r.optimizeForFirstRender) {\n const ms2 = getMedia();\n if (ms2 === r.lastState) {\n return r.lastState;\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms2);\n r.pendingState = ms2;\n return r.lastState;\n }\n r.lastState = ms2;\n return ms2;\n }\n const curKeys = mediaListenKeys(r);\n const { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n const ms = getMedia();\n for (const key of curKeys) {\n if (ms[key] !== (pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n const ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if (ref.keys?.size) {\n ref.keys.clear();\n }\n const [, forceUpdate] = useReducer(incReducer, 0);\n const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(() => {\n const synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(() => {\n const renderVersion = ref.renderVersion;\n const shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!States.get(ref.uid)?.enabled;\n if (shouldSubscribe) {\n ref.onChange ||= () => {\n const next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if (ref.uid?.nativeMediaUpdate?.(forceUpdate)) return;\n forceUpdate();\n }\n };\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return () => {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nconst incReducer = (c) => c + 1;\nlet disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n let res;\n try {\n res = Object.fromEntries(\n [...mediaGroups].map((mediaKey) => {\n return [mediaKey, mediaKeyMatch(mediaKey, layout)];\n })\n );\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nconst cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMedia.js","names":[],"sources":["esm/hooks/useMedia.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport {\n getMedia,\n mediaKeyMatch,\n mediaKeys,\n mediaQueryConfig,\n setMediaState\n} from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nlet initState;\nconst dispose = /* @__PURE__ */ new Set();\nlet mediaVersion = 0;\nconst configureMedia = (config) => {\n const { media } = config;\n const mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (const key in media) {\n getMedia()[key] = mediaQueryDefaultActive?.[key] || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = { ...getMedia() };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach((cb) => cb());\n dispose.clear();\n}\nlet setupVersion = -1;\nfunction setupMediaListeners() {\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (const key in mediaQueryConfig) {\n let update = function() {\n const next = !!getMatch().matches;\n if (next === getMedia()[key]) return;\n setMediaState({ ...getMedia(), [key]: next });\n updateMediaListeners();\n };\n const str = mediaObjectToString(mediaQueryConfig[key]);\n const getMatch = () => matchMedia(str);\n const match = getMatch();\n if (!match) {\n throw new Error(\n process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\n \"TAMAGUI_MEDIA_MATCH\",\n \"useMedia\",\n \"matchMedia returned no MediaQueryList\",\n \"Provide a matchMedia implementation that returns a MediaQueryList\",\n \"key,query,platform\",\n { key, query: str, platform: isWeb ? \"web\" : \"native\" }\n ) : \"\\u274C Error 013\"\n );\n }\n match.addListener(update);\n dispose.add(() => {\n match.removeListener(update);\n });\n update();\n }\n}\nconst listenersByKey = /* @__PURE__ */ new Map();\nconst globalListeners = /* @__PURE__ */ new Set();\nlet publishedState = null;\nconst _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n const media = getMedia();\n const prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n const woken = /* @__PURE__ */ new Set();\n for (const key of mediaKeys) {\n if (prev !== null && media[key] === prev[key]) continue;\n const bucket = listenersByKey.get(key);\n if (bucket) {\n for (const cb of bucket) woken.add(cb);\n }\n }\n for (const cb of woken) {\n _mediaListenerStats.notified++;\n cb(media);\n }\n }\n globalListeners.forEach((cb) => {\n _mediaListenerStats.notified++;\n cb(media);\n });\n}\nconst States = /* @__PURE__ */ new WeakMap();\nlet touchTrackerProto = null;\nconst refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n const proto = {};\n for (const key of mediaKeys) {\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n const slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys, optimizeForFirstRender = false) {\n if (optimizeForFirstRender) return;\n const cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? States.get(ref.uid)?.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n const keys = mediaListenKeys(ref);\n const cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n for (const key of keys) {\n let bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n}\nfunction unindexMediaListener(ref) {\n const keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n for (const key of keys) {\n const bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n for (const key of b) {\n if (!a.has(key)) return false;\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n const internalRef = useRef(null);\n if (!internalRef.current) {\n const initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n const optimizeForFirstRender = isOptimizedForFirstRender();\n const r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n const tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = (inRender) => {\n const { lastState } = r;\n const curKeys = mediaListenKeys(r);\n const ms = getMedia();\n if (curKeys) {\n let changed = false;\n for (const key of curKeys) {\n if (ms[key] !== (r.pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n changed = true;\n break;\n }\n }\n if (!changed) return lastState;\n } else if (ms === lastState) {\n return lastState;\n }\n const mediaEmit = r.componentContext?.mediaEmit;\n if (mediaEmit) {\n if (inRender) queueMicrotask(() => mediaEmit(ms));\n else mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n const ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if (ref.keys?.size) {\n ref.keys.clear();\n }\n const [, forceUpdate] = useReducer(incReducer, 0);\n const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(() => {\n const synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(() => {\n const renderVersion = ref.renderVersion;\n const shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!States.get(ref.uid)?.enabled;\n if (shouldSubscribe) {\n ref.onChange ||= () => {\n const next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if (ref.uid?.nativeMediaUpdate?.(forceUpdate)) return;\n forceUpdate();\n }\n };\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return () => {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nconst incReducer = (c) => c + 1;\nlet disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n let res;\n try {\n res = Object.fromEntries(\n [...mediaGroups].map((mediaKey) => {\n return [mediaKey, mediaKeyMatch(mediaKey, layout)];\n })\n );\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nconst cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
@@ -339,60 +339,54 @@ function useMedia(componentContext, debug, uid) {
|
|
|
339
339
|
};
|
|
340
340
|
r.proxy = tracker;
|
|
341
341
|
}
|
|
342
|
-
r.getSnapshot = function() {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
var ms = getMedia();
|
|
346
|
-
if (ms === r.lastState) {
|
|
347
|
-
return r.lastState;
|
|
348
|
-
}
|
|
349
|
-
if ((_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit) {
|
|
350
|
-
r.componentContext.mediaEmit(ms);
|
|
351
|
-
r.pendingState = ms;
|
|
352
|
-
return r.lastState;
|
|
353
|
-
}
|
|
354
|
-
r.lastState = ms;
|
|
355
|
-
return ms;
|
|
356
|
-
}
|
|
342
|
+
r.getSnapshot = function(inRender) {
|
|
343
|
+
var _r_componentContext;
|
|
344
|
+
var { lastState } = r;
|
|
357
345
|
var curKeys = mediaListenKeys(r);
|
|
358
|
-
var
|
|
359
|
-
if (
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
var ms1 = getMedia();
|
|
363
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
364
|
-
try {
|
|
365
|
-
for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
366
|
-
var key = _step.value;
|
|
367
|
-
if (ms1[key] !== (pendingState || lastState)[key]) {
|
|
368
|
-
var _r_componentContext1;
|
|
369
|
-
if (process.env.NODE_ENV === "development" && r.debug) {
|
|
370
|
-
console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms1[key]);
|
|
371
|
-
}
|
|
372
|
-
if ((_r_componentContext1 = r.componentContext) === null || _r_componentContext1 === void 0 ? void 0 : _r_componentContext1.mediaEmit) {
|
|
373
|
-
r.componentContext.mediaEmit(ms1);
|
|
374
|
-
r.pendingState = ms1;
|
|
375
|
-
return lastState;
|
|
376
|
-
}
|
|
377
|
-
r.lastState = ms1;
|
|
378
|
-
return ms1;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
} catch (err) {
|
|
382
|
-
_didIteratorError = true;
|
|
383
|
-
_iteratorError = err;
|
|
384
|
-
} finally {
|
|
346
|
+
var ms = getMedia();
|
|
347
|
+
if (curKeys) {
|
|
348
|
+
var changed = false;
|
|
349
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
385
350
|
try {
|
|
386
|
-
|
|
387
|
-
|
|
351
|
+
for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
352
|
+
var key = _step.value;
|
|
353
|
+
if (ms[key] !== (r.pendingState || lastState)[key]) {
|
|
354
|
+
if (process.env.NODE_ENV === "development" && r.debug) {
|
|
355
|
+
console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms[key]);
|
|
356
|
+
}
|
|
357
|
+
changed = true;
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
388
360
|
}
|
|
361
|
+
} catch (err) {
|
|
362
|
+
_didIteratorError = true;
|
|
363
|
+
_iteratorError = err;
|
|
389
364
|
} finally {
|
|
390
|
-
|
|
391
|
-
|
|
365
|
+
try {
|
|
366
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
367
|
+
_iterator.return();
|
|
368
|
+
}
|
|
369
|
+
} finally {
|
|
370
|
+
if (_didIteratorError) {
|
|
371
|
+
throw _iteratorError;
|
|
372
|
+
}
|
|
392
373
|
}
|
|
393
374
|
}
|
|
375
|
+
if (!changed) return lastState;
|
|
376
|
+
} else if (ms === lastState) {
|
|
377
|
+
return lastState;
|
|
378
|
+
}
|
|
379
|
+
var mediaEmit = (_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit;
|
|
380
|
+
if (mediaEmit) {
|
|
381
|
+
if (inRender) queueMicrotask(function() {
|
|
382
|
+
return mediaEmit(ms);
|
|
383
|
+
});
|
|
384
|
+
else mediaEmit(ms);
|
|
385
|
+
r.pendingState = ms;
|
|
386
|
+
return lastState;
|
|
394
387
|
}
|
|
395
|
-
|
|
388
|
+
r.lastState = ms;
|
|
389
|
+
return ms;
|
|
396
390
|
};
|
|
397
391
|
internalRef.current = r;
|
|
398
392
|
} else {
|
|
@@ -410,7 +404,7 @@ function useMedia(componentContext, debug, uid) {
|
|
|
410
404
|
ref.keys.clear();
|
|
411
405
|
}
|
|
412
406
|
var [, forceUpdate] = useReducer(incReducer, 0);
|
|
413
|
-
var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();
|
|
407
|
+
var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);
|
|
414
408
|
ref.proxyTarget = state;
|
|
415
409
|
if (!ref.optimizeForFirstRender) {
|
|
416
410
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMedia.native.js","names":[],"sources":["esm/hooks/useMedia.native.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport { getMedia, mediaKeyMatch, mediaKeys, mediaQueryConfig, setMediaState } from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nvar initState;\nvar dispose = /* @__PURE__ */ new Set();\nvar mediaVersion = 0;\nvar configureMedia = function(config) {\n var { media } = config;\n var mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (var key in media) {\n getMedia()[key] = (mediaQueryDefaultActive === null || mediaQueryDefaultActive === void 0 ? void 0 : mediaQueryDefaultActive[key]) || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = {\n ...getMedia()\n };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach(function(cb) {\n return cb();\n });\n dispose.clear();\n}\nvar setupVersion = -1;\nfunction setupMediaListeners() {\n var _loop = function(key2) {\n var str = mediaObjectToString(mediaQueryConfig[key2]);\n var getMatch = function() {\n return matchMedia(str);\n };\n var match = getMatch();\n if (!match) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\"TAMAGUI_MEDIA_MATCH\", \"useMedia\", \"matchMedia returned no MediaQueryList\", \"Provide a matchMedia implementation that returns a MediaQueryList\", \"key,query,platform\", {\n key: key2,\n query: str,\n platform: isWeb ? \"web\" : \"native\"\n }) : \"\\u274C Error 013\");\n }\n match.addListener(update);\n dispose.add(function() {\n match.removeListener(update);\n });\n function update() {\n var next = !!getMatch().matches;\n if (next === getMedia()[key2]) return;\n setMediaState({\n ...getMedia(),\n [key2]: next\n });\n updateMediaListeners();\n }\n update();\n };\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (var key in mediaQueryConfig) _loop(key);\n}\nvar listenersByKey = /* @__PURE__ */ new Map();\nvar globalListeners = /* @__PURE__ */ new Set();\nvar publishedState = null;\nvar _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n var media = getMedia();\n var prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n var woken = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (prev !== null && media[key] === prev[key]) continue;\n var bucket = listenersByKey.get(key);\n if (bucket) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = bucket[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var cb = _step1.value;\n woken.add(cb);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = woken[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var cb1 = _step2.value;\n _mediaListenerStats.notified++;\n cb1(media);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n globalListeners.forEach(function(cb2) {\n _mediaListenerStats.notified++;\n cb2(media);\n });\n}\nvar States = /* @__PURE__ */ new WeakMap();\nvar touchTrackerProto = null;\nvar refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n var proto = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n var slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n };\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys) {\n var optimizeForFirstRender = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n if (optimizeForFirstRender) return;\n var cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n var _States_get;\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? (_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n var keys = mediaListenKeys(ref);\n var cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction unindexMediaListener(ref) {\n var keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!a.has(key)) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n var _ref_keys;\n var internalRef = useRef(null);\n if (!internalRef.current) {\n var initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n var optimizeForFirstRender = isOptimizedForFirstRender();\n var r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n var tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = function() {\n if (r.optimizeForFirstRender) {\n var _r_componentContext;\n var ms = getMedia();\n if (ms === r.lastState) {\n return r.lastState;\n }\n if ((_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return r.lastState;\n }\n r.lastState = ms;\n return ms;\n }\n var curKeys = mediaListenKeys(r);\n var { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n var ms1 = getMedia();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (ms1[key] !== (pendingState || lastState)[key]) {\n var _r_componentContext1;\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms1[key]);\n }\n if ((_r_componentContext1 = r.componentContext) === null || _r_componentContext1 === void 0 ? void 0 : _r_componentContext1.mediaEmit) {\n r.componentContext.mediaEmit(ms1);\n r.pendingState = ms1;\n return lastState;\n }\n r.lastState = ms1;\n return ms1;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n var ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if ((_ref_keys = ref.keys) === null || _ref_keys === void 0 ? void 0 : _ref_keys.size) {\n ref.keys.clear();\n }\n var [, forceUpdate] = useReducer(incReducer, 0);\n var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(function() {\n var synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(function() {\n var _States_get;\n var renderVersion = ref.renderVersion;\n var shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!((_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.enabled);\n if (shouldSubscribe) {\n var _ref;\n (_ref = ref).onChange || (_ref.onChange = function() {\n var next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n var _ref_uid_nativeMediaUpdate, _ref_uid;\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if ((_ref_uid = ref.uid) === null || _ref_uid === void 0 ? void 0 : (_ref_uid_nativeMediaUpdate = _ref_uid.nativeMediaUpdate) === null || _ref_uid_nativeMediaUpdate === void 0 ? void 0 : _ref_uid_nativeMediaUpdate.call(_ref_uid, forceUpdate)) return;\n forceUpdate();\n }\n });\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return function() {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nvar incReducer = function(c) {\n return c + 1;\n};\nvar disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n var res;\n try {\n res = Object.fromEntries([\n ...mediaGroups\n ].map(function(mediaKey) {\n return [\n mediaKey,\n mediaKeyMatch(mediaKey, layout)\n ];\n }));\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nvar cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMedia.native.js","names":[],"sources":["esm/hooks/useMedia.native.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport { getMedia, mediaKeyMatch, mediaKeys, mediaQueryConfig, setMediaState } from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nvar initState;\nvar dispose = /* @__PURE__ */ new Set();\nvar mediaVersion = 0;\nvar configureMedia = function(config) {\n var { media } = config;\n var mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (var key in media) {\n getMedia()[key] = (mediaQueryDefaultActive === null || mediaQueryDefaultActive === void 0 ? void 0 : mediaQueryDefaultActive[key]) || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = {\n ...getMedia()\n };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach(function(cb) {\n return cb();\n });\n dispose.clear();\n}\nvar setupVersion = -1;\nfunction setupMediaListeners() {\n var _loop = function(key2) {\n var str = mediaObjectToString(mediaQueryConfig[key2]);\n var getMatch = function() {\n return matchMedia(str);\n };\n var match = getMatch();\n if (!match) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\"TAMAGUI_MEDIA_MATCH\", \"useMedia\", \"matchMedia returned no MediaQueryList\", \"Provide a matchMedia implementation that returns a MediaQueryList\", \"key,query,platform\", {\n key: key2,\n query: str,\n platform: isWeb ? \"web\" : \"native\"\n }) : \"\\u274C Error 013\");\n }\n match.addListener(update);\n dispose.add(function() {\n match.removeListener(update);\n });\n function update() {\n var next = !!getMatch().matches;\n if (next === getMedia()[key2]) return;\n setMediaState({\n ...getMedia(),\n [key2]: next\n });\n updateMediaListeners();\n }\n update();\n };\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (var key in mediaQueryConfig) _loop(key);\n}\nvar listenersByKey = /* @__PURE__ */ new Map();\nvar globalListeners = /* @__PURE__ */ new Set();\nvar publishedState = null;\nvar _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n var media = getMedia();\n var prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n var woken = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (prev !== null && media[key] === prev[key]) continue;\n var bucket = listenersByKey.get(key);\n if (bucket) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = bucket[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var cb = _step1.value;\n woken.add(cb);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = woken[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var cb1 = _step2.value;\n _mediaListenerStats.notified++;\n cb1(media);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n globalListeners.forEach(function(cb2) {\n _mediaListenerStats.notified++;\n cb2(media);\n });\n}\nvar States = /* @__PURE__ */ new WeakMap();\nvar touchTrackerProto = null;\nvar refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n var proto = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n var slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n };\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys) {\n var optimizeForFirstRender = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n if (optimizeForFirstRender) return;\n var cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n var _States_get;\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? (_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n var keys = mediaListenKeys(ref);\n var cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction unindexMediaListener(ref) {\n var keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!a.has(key)) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n var _ref_keys;\n var internalRef = useRef(null);\n if (!internalRef.current) {\n var initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n var optimizeForFirstRender = isOptimizedForFirstRender();\n var r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n var tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = function(inRender) {\n var _r_componentContext;\n var { lastState } = r;\n var curKeys = mediaListenKeys(r);\n var ms = getMedia();\n if (curKeys) {\n var changed = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (ms[key] !== (r.pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n changed = true;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!changed) return lastState;\n } else if (ms === lastState) {\n return lastState;\n }\n var mediaEmit = (_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit;\n if (mediaEmit) {\n if (inRender) queueMicrotask(function() {\n return mediaEmit(ms);\n });\n else mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n var ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if ((_ref_keys = ref.keys) === null || _ref_keys === void 0 ? void 0 : _ref_keys.size) {\n ref.keys.clear();\n }\n var [, forceUpdate] = useReducer(incReducer, 0);\n var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(function() {\n var synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(function() {\n var _States_get;\n var renderVersion = ref.renderVersion;\n var shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!((_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.enabled);\n if (shouldSubscribe) {\n var _ref;\n (_ref = ref).onChange || (_ref.onChange = function() {\n var next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n var _ref_uid_nativeMediaUpdate, _ref_uid;\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if ((_ref_uid = ref.uid) === null || _ref_uid === void 0 ? void 0 : (_ref_uid_nativeMediaUpdate = _ref_uid.nativeMediaUpdate) === null || _ref_uid_nativeMediaUpdate === void 0 ? void 0 : _ref_uid_nativeMediaUpdate.call(_ref_uid, forceUpdate)) return;\n forceUpdate();\n }\n });\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return function() {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nvar incReducer = function(c) {\n return c + 1;\n};\nvar disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n var res;\n try {\n res = Object.fromEntries([\n ...mediaGroups\n ].map(function(mediaKey) {\n return [\n mediaKey,\n mediaKeyMatch(mediaKey, layout)\n ];\n }));\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nvar cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.1604.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nate Wienert"
|
|
@@ -100,23 +100,23 @@
|
|
|
100
100
|
"test:web": "vitest --typecheck --run"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
|
-
"@tamagui/animation-helpers": "3.0.0-beta.
|
|
104
|
-
"@tamagui/compose-refs": "3.0.0-beta.
|
|
105
|
-
"@tamagui/constants": "3.0.0-beta.
|
|
106
|
-
"@tamagui/dom": "3.0.0-beta.
|
|
107
|
-
"@tamagui/helpers": "3.0.0-beta.
|
|
108
|
-
"@tamagui/is-equal-shallow": "3.0.0-beta.
|
|
109
|
-
"@tamagui/native": "3.0.0-beta.
|
|
110
|
-
"@tamagui/normalize-css-color": "3.0.0-beta.
|
|
111
|
-
"@tamagui/react-native-types": "3.0.0-beta.
|
|
112
|
-
"@tamagui/style-grammar": "3.0.0-beta.
|
|
113
|
-
"@tamagui/types": "3.0.0-beta.
|
|
114
|
-
"@tamagui/use-did-finish-ssr": "3.0.0-beta.
|
|
115
|
-
"@tamagui/use-event": "3.0.0-beta.
|
|
116
|
-
"@tamagui/use-force-update": "3.0.0-beta.
|
|
103
|
+
"@tamagui/animation-helpers": "3.0.0-beta.1604.1",
|
|
104
|
+
"@tamagui/compose-refs": "3.0.0-beta.1604.1",
|
|
105
|
+
"@tamagui/constants": "3.0.0-beta.1604.1",
|
|
106
|
+
"@tamagui/dom": "3.0.0-beta.1604.1",
|
|
107
|
+
"@tamagui/helpers": "3.0.0-beta.1604.1",
|
|
108
|
+
"@tamagui/is-equal-shallow": "3.0.0-beta.1604.1",
|
|
109
|
+
"@tamagui/native": "3.0.0-beta.1604.1",
|
|
110
|
+
"@tamagui/normalize-css-color": "3.0.0-beta.1604.1",
|
|
111
|
+
"@tamagui/react-native-types": "3.0.0-beta.1604.1",
|
|
112
|
+
"@tamagui/style-grammar": "3.0.0-beta.1604.1",
|
|
113
|
+
"@tamagui/types": "3.0.0-beta.1604.1",
|
|
114
|
+
"@tamagui/use-did-finish-ssr": "3.0.0-beta.1604.1",
|
|
115
|
+
"@tamagui/use-event": "3.0.0-beta.1604.1",
|
|
116
|
+
"@tamagui/use-force-update": "3.0.0-beta.1604.1"
|
|
117
117
|
},
|
|
118
118
|
"devDependencies": {
|
|
119
|
-
"@tamagui/build": "3.0.0-beta.
|
|
119
|
+
"@tamagui/build": "3.0.0-beta.1604.1",
|
|
120
120
|
"@testing-library/react": "^16.1.0",
|
|
121
121
|
"csstype": "^3.0.10",
|
|
122
122
|
"react": "19.2.3",
|
|
@@ -129,5 +129,5 @@
|
|
|
129
129
|
"react": ">=19",
|
|
130
130
|
"react-dom": "*"
|
|
131
131
|
},
|
|
132
|
-
"releaseSourceCommit": "
|
|
132
|
+
"releaseSourceCommit": "360e4e0e611bb81518cc274cccff03d38e59a2a0"
|
|
133
133
|
}
|
|
@@ -768,9 +768,13 @@ function contributeProp(
|
|
|
768
768
|
const styleOriginals = shouldTrackStyleTokenProvenance
|
|
769
769
|
? styleOriginalValues.get(style)
|
|
770
770
|
: undefined
|
|
771
|
-
for (const
|
|
772
|
-
const value = style[
|
|
771
|
+
for (const authoredKey in style) {
|
|
772
|
+
const value = style[authoredKey]
|
|
773
773
|
if (value == null) continue
|
|
774
|
+
// style objects and pieces take the same shorthands as props
|
|
775
|
+
const key = disableExpandShorthands
|
|
776
|
+
? authoredKey
|
|
777
|
+
: shorthands[authoredKey] || authoredKey
|
|
774
778
|
// the style prop is the inline style attribute, as in react: a plain
|
|
775
779
|
// value never becomes an atomic class, so element.style reads it back
|
|
776
780
|
// and it can change every frame without inserting a rule. a value that
|
|
@@ -805,7 +809,7 @@ function contributeProp(
|
|
|
805
809
|
}
|
|
806
810
|
}
|
|
807
811
|
;(styleState as DirectState).flatInlineStyleProp = inline
|
|
808
|
-
contributeValue(styleState, key, value, styleOriginals?.[
|
|
812
|
+
contributeValue(styleState, key, value, styleOriginals?.[authoredKey])
|
|
809
813
|
;(styleState as DirectState).flatInlineStyleProp = false
|
|
810
814
|
}
|
|
811
815
|
}
|
package/src/hooks/useMedia.tsx
CHANGED
|
@@ -247,7 +247,7 @@ type MediaRef = {
|
|
|
247
247
|
// by mutating `proxyTarget` and re-reading it in the get trap.
|
|
248
248
|
proxyTarget: MediaQueryState
|
|
249
249
|
proxy: UseMediaState
|
|
250
|
-
getSnapshot: () => MediaQueryState
|
|
250
|
+
getSnapshot: (inRender?: boolean) => MediaQueryState
|
|
251
251
|
componentContext?: ComponentContextI
|
|
252
252
|
uid?: object
|
|
253
253
|
debug?: DebugProp
|
|
@@ -362,51 +362,37 @@ export function useMedia(
|
|
|
362
362
|
} as MediaRefSlot
|
|
363
363
|
r.proxy = tracker as UseMediaState
|
|
364
364
|
}
|
|
365
|
-
r.getSnapshot = () => {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
if (ms === r.lastState) {
|
|
369
|
-
return r.lastState
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
if (r.componentContext?.mediaEmit) {
|
|
373
|
-
r.componentContext.mediaEmit(ms)
|
|
374
|
-
r.pendingState = ms
|
|
375
|
-
return r.lastState
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
r.lastState = ms
|
|
379
|
-
return ms
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
const curKeys = mediaListenKeys(r)!
|
|
383
|
-
const { lastState, pendingState } = r
|
|
384
|
-
|
|
385
|
-
if (!curKeys.size) {
|
|
386
|
-
return lastState
|
|
387
|
-
}
|
|
388
|
-
|
|
365
|
+
r.getSnapshot = (inRender) => {
|
|
366
|
+
const { lastState } = r
|
|
367
|
+
const curKeys = mediaListenKeys(r)
|
|
389
368
|
const ms = getMedia()
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
r.pendingState = ms
|
|
400
|
-
return lastState
|
|
369
|
+
if (curKeys) {
|
|
370
|
+
let changed = false
|
|
371
|
+
for (const key of curKeys) {
|
|
372
|
+
if (ms[key] !== (r.pendingState || lastState)[key]) {
|
|
373
|
+
if (process.env.NODE_ENV === 'development' && r.debug) {
|
|
374
|
+
console.warn(`useMedia() ✍️`, key, lastState[key], '=>', ms[key])
|
|
375
|
+
}
|
|
376
|
+
changed = true
|
|
377
|
+
break
|
|
401
378
|
}
|
|
402
|
-
|
|
403
|
-
r.lastState = ms
|
|
404
|
-
|
|
405
|
-
return ms
|
|
406
379
|
}
|
|
380
|
+
if (!changed) return lastState
|
|
381
|
+
} else if (ms === lastState) {
|
|
382
|
+
return lastState
|
|
407
383
|
}
|
|
408
384
|
|
|
409
|
-
|
|
385
|
+
// render-time emits update siblings through setState, so defer those
|
|
386
|
+
// until render finishes; effect and subscription emits stay synchronous.
|
|
387
|
+
const mediaEmit = r.componentContext?.mediaEmit
|
|
388
|
+
if (mediaEmit) {
|
|
389
|
+
if (inRender) queueMicrotask(() => mediaEmit(ms))
|
|
390
|
+
else mediaEmit(ms)
|
|
391
|
+
r.pendingState = ms
|
|
392
|
+
return lastState
|
|
393
|
+
}
|
|
394
|
+
r.lastState = ms
|
|
395
|
+
return ms
|
|
410
396
|
}
|
|
411
397
|
internalRef.current = r
|
|
412
398
|
} else {
|
|
@@ -440,7 +426,7 @@ export function useMedia(
|
|
|
440
426
|
? initState
|
|
441
427
|
: ref.optimizeForFirstRender && ref.renderVersion === 1
|
|
442
428
|
? ref.lastState
|
|
443
|
-
: ref.getSnapshot()
|
|
429
|
+
: ref.getSnapshot(true)
|
|
444
430
|
ref.proxyTarget = state
|
|
445
431
|
if (!ref.optimizeForFirstRender) {
|
|
446
432
|
;(ref.proxy as any)[refSlot].proxyTarget = state
|
package/src/types.tsx
CHANGED
|
@@ -1999,20 +1999,6 @@ export type GetTokenFontKeysFor<
|
|
|
1999
1999
|
> = keyof TamaguiConfig['fonts']['body'][A]
|
|
2000
2000
|
|
|
2001
2001
|
export type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>
|
|
2002
|
-
/** generic css families, valid as a single-token fontFamily without a config font */
|
|
2003
|
-
export type GenericFontFamily =
|
|
2004
|
-
| 'serif'
|
|
2005
|
-
| 'sans-serif'
|
|
2006
|
-
| 'monospace'
|
|
2007
|
-
| 'cursive'
|
|
2008
|
-
| 'fantasy'
|
|
2009
|
-
| 'system-ui'
|
|
2010
|
-
| 'ui-serif'
|
|
2011
|
-
| 'ui-sans-serif'
|
|
2012
|
-
| 'ui-monospace'
|
|
2013
|
-
| 'ui-rounded'
|
|
2014
|
-
| 'math'
|
|
2015
|
-
| 'inherit'
|
|
2016
2002
|
export type FontFamilyTokens = FontTokens
|
|
2017
2003
|
export type FontSize =
|
|
2018
2004
|
| GetTokenString<GetTokenFontKeysFor<'size'>>
|
|
@@ -2115,7 +2101,7 @@ export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme
|
|
|
2115
2101
|
: K extends SizeKeys
|
|
2116
2102
|
? SizeTokens
|
|
2117
2103
|
: K extends FontKeys
|
|
2118
|
-
? FontTokens
|
|
2104
|
+
? FontTokens
|
|
2119
2105
|
: K extends FontSizeKeys
|
|
2120
2106
|
? FontSizeTokens | FontStyleValueFallback
|
|
2121
2107
|
: K extends `${`border${string | ''}Radius`}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,gBAAgB,EAEhB,mBAAmB,EAEnB,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAGb,eAAe,EACf,YAAY,EAGZ,qBAAqB,EACrB,qBAAqB,EAErB,WAAW,EAGZ,MAAM,UAAU,CAAA;AAkBjB,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAKlF,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAqB/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAe3D,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACvF,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAK3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAEtC,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,KAAK,CAAC,EAAE,SAAS,EAEjB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAC5C,iBAAiB,CAAC,EAAE,iBAAiB,KAClC,IAAI,GAAG,cAAc,CAAA;AA6U1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAEhF;
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,gBAAgB,EAEhB,mBAAmB,EAEnB,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAGb,eAAe,EACf,YAAY,EAGZ,qBAAqB,EACrB,qBAAqB,EAErB,WAAW,EAGZ,MAAM,UAAU,CAAA;AAkBjB,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAKlF,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAqB/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAe3D,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACvF,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAK3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAEtC,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,KAAK,CAAC,EAAE,SAAS,EAEjB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAC5C,iBAAiB,CAAC,EAAE,iBAAiB,KAClC,IAAI,GAAG,cAAc,CAAA;AA6U1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAEhF;AA+rBD,eAAO,MAAM,cAAc,EAAE,aAuuB5B,CAAA;AAoYD,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,gBAAgB,CAAC,EAAE,OAAO,EAC1B,aAAa,CAAC,EAAE,GAAG,KAChB,IAAI,CAAA;AA63CT,KAAK,oBAAoB,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;AAgCnF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,GAAG,IAAI,EACjC,QAAQ,SAAI,EACZ,WAAW,UAAQ,WA4OpB;AA6HD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO,QAyBlB;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,sBAgBtF;AAMD,cAAc,mBAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAET,qBAAqB,EACrB,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAA;AASjB,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAgB3D,CAAA;AAaD,wBAAgB,mBAAmB,SA6ClC;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;IAC9B,SAAS;IACT,QAAQ;CACT,CAAA;AAED,wBAAgB,oBAAoB,SA0BnC;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAC1B,CAAA;AAiDD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,sBAAsB,UAAQ,QAa/B;AAyFD,wBAAgB,QAAQ,CACtB,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,KAAK,CAAC,EAAE,SAAS,EAGjB,GAAG,CAAC,EAAE,MAAM,GACX,aAAa,
|
|
1
|
+
{"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAET,qBAAqB,EACrB,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAA;AASjB,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAgB3D,CAAA;AAaD,wBAAgB,mBAAmB,SA6ClC;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;IAC9B,SAAS;IACT,QAAQ;CACT,CAAA;AAED,wBAAgB,oBAAoB,SA0BnC;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAC1B,CAAA;AAiDD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,sBAAsB,UAAQ,QAa/B;AAyFD,wBAAgB,QAAQ,CACtB,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,KAAK,CAAC,EAAE,SAAS,EAGjB,GAAG,CAAC,EAAE,MAAM,GACX,aAAa,CAiKf;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,QAE9C;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,2BAa1E;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAK1C"}
|
package/types/types.d.ts
CHANGED
|
@@ -1173,8 +1173,6 @@ export type Fonts = DefaultFont extends string ? TamaguiConfig['fonts'][DefaultF
|
|
|
1173
1173
|
export type Font = ParseFont<Fonts>;
|
|
1174
1174
|
export type GetTokenFontKeysFor<A extends 'size' | 'weight' | 'letterSpacing' | 'family' | 'lineHeight' | 'transform' | 'style' | 'color'> = keyof TamaguiConfig['fonts']['body'][A];
|
|
1175
1175
|
export type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>;
|
|
1176
|
-
/** generic css families, valid as a single-token fontFamily without a config font */
|
|
1177
|
-
export type GenericFontFamily = 'serif' | 'sans-serif' | 'monospace' | 'cursive' | 'fantasy' | 'system-ui' | 'ui-serif' | 'ui-sans-serif' | 'ui-monospace' | 'ui-rounded' | 'math' | 'inherit';
|
|
1178
1176
|
export type FontFamilyTokens = FontTokens;
|
|
1179
1177
|
export type FontSize = GetTokenString<GetTokenFontKeysFor<'size'>> | number | RemString | true;
|
|
1180
1178
|
export type FontSizeTokens = FontSize;
|
|
@@ -1207,7 +1205,7 @@ export type LineHeightKeys = 'lineHeight';
|
|
|
1207
1205
|
export type ZIndexKeys = 'zIndex';
|
|
1208
1206
|
export type OpacityKeys = 'opacity';
|
|
1209
1207
|
type FontStyleValueFallback = GetThemeValueFallbackFor<AllowedValueSettingSize, never, never, never, WebStyleValueUniversal | `${number}%`>;
|
|
1210
|
-
export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme' ? ThemeTokens : K extends SizeKeys ? SizeTokens : K extends FontKeys ? FontTokens
|
|
1208
|
+
export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme' ? ThemeTokens : K extends SizeKeys ? SizeTokens : K extends FontKeys ? FontTokens : K extends FontSizeKeys ? FontSizeTokens | FontStyleValueFallback : K extends `${`border${string | ''}Radius`}` ? RadiusTokens : K extends SpaceKeys ? K extends 'shadowOffset' ? {
|
|
1211
1209
|
width: SpaceTokens;
|
|
1212
1210
|
height: SpaceTokens;
|
|
1213
1211
|
} : SpaceTokens : K extends ColorKeys ? ColorTokens | ThemeValueFallbackColor : K extends ZIndexKeys ? ZIndexTokens : K extends LineHeightKeys ? FontLineHeightTokens | FontStyleValueFallback : K extends FontWeightKeys ? FontWeightTokens : K extends FontLetterSpacingKeys ? FontLetterSpacingTokens : K extends OpacityKeys ? ThemeValueFallback : never;
|