@tamagui/web 1.101.1 → 1.101.3

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.
Files changed (48) hide show
  1. package/dist/cjs/createComponent.js +3 -3
  2. package/dist/cjs/createComponent.js.map +1 -1
  3. package/dist/cjs/createComponent.native.js +3 -3
  4. package/dist/cjs/createComponent.native.js.map +2 -2
  5. package/dist/cjs/helpers/getSplitStyles.js +1 -1
  6. package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
  7. package/dist/cjs/helpers/getSplitStyles.native.js +1 -1
  8. package/dist/cjs/helpers/getSplitStyles.native.js.map +2 -2
  9. package/dist/cjs/hooks/useDidHydrateOnce.js +2 -10
  10. package/dist/cjs/hooks/useDidHydrateOnce.js.map +1 -1
  11. package/dist/cjs/hooks/useDidHydrateOnce.native.js +2 -2
  12. package/dist/cjs/hooks/useDidHydrateOnce.native.js.map +2 -2
  13. package/dist/cjs/hooks/useMedia.js +37 -27
  14. package/dist/cjs/hooks/useMedia.js.map +2 -2
  15. package/dist/cjs/hooks/useMedia.native.js +36 -47
  16. package/dist/cjs/hooks/useMedia.native.js.map +2 -2
  17. package/dist/esm/createComponent.js +3 -3
  18. package/dist/esm/createComponent.js.map +1 -1
  19. package/dist/esm/createComponent.mjs +5 -5
  20. package/dist/esm/createComponent.native.js +3 -3
  21. package/dist/esm/createComponent.native.js.map +2 -2
  22. package/dist/esm/helpers/getSplitStyles.js +1 -1
  23. package/dist/esm/helpers/getSplitStyles.js.map +1 -1
  24. package/dist/esm/helpers/getSplitStyles.mjs +1 -1
  25. package/dist/esm/helpers/getSplitStyles.native.js +1 -1
  26. package/dist/esm/helpers/getSplitStyles.native.js.map +2 -2
  27. package/dist/esm/hooks/useDidHydrateOnce.js +3 -11
  28. package/dist/esm/hooks/useDidHydrateOnce.js.map +1 -1
  29. package/dist/esm/hooks/useDidHydrateOnce.mjs +3 -11
  30. package/dist/esm/hooks/useDidHydrateOnce.native.js +1 -2
  31. package/dist/esm/hooks/useDidHydrateOnce.native.js.map +2 -2
  32. package/dist/esm/hooks/useMedia.js +37 -28
  33. package/dist/esm/hooks/useMedia.js.map +2 -2
  34. package/dist/esm/hooks/useMedia.mjs +34 -37
  35. package/dist/esm/hooks/useMedia.native.js +36 -48
  36. package/dist/esm/hooks/useMedia.native.js.map +2 -2
  37. package/package.json +11 -11
  38. package/src/createComponent.tsx +7 -5
  39. package/src/helpers/getSplitStyles.tsx +4 -4
  40. package/src/hooks/useDidHydrateOnce.tsx +16 -21
  41. package/src/hooks/useMedia.tsx +70 -55
  42. package/src/types.tsx +1 -1
  43. package/types/createComponent.d.ts.map +1 -1
  44. package/types/hooks/useDidHydrateOnce.d.ts.map +1 -1
  45. package/types/hooks/useMedia.d.ts +4 -4
  46. package/types/hooks/useMedia.d.ts.map +1 -1
  47. package/types/types.d.ts +1 -1
  48. package/types/types.d.ts.map +1 -1
@@ -1,9 +1,8 @@
1
1
  import { isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { useRef, useState } from "react";
2
+ import { useRef, useState, useSyncExternalStore } from "react";
3
3
  import { getConfig } from "../config";
4
4
  import { matchMedia } from "../helpers/matchMedia";
5
5
  import { pseudoDescriptors } from "../helpers/pseudoDescriptors";
6
- import { useDidHydrateOnce } from "./useDidHydrateOnce";
7
6
  import { getDisableSSR } from "./useDisableSSR";
8
7
  let mediaState = (
9
8
  // development only safeguard
@@ -51,7 +50,7 @@ function unlisten() {
51
50
  let setupVersion = -1;
52
51
  function setupMediaListeners() {
53
52
  if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
54
- setupVersion = mediaVersion, process.env.NODE_ENV === "development" && unlisten();
53
+ setupVersion = mediaVersion, unlisten();
55
54
  for (const key in mediaQueryConfig) {
56
55
  let update = function() {
57
56
  const next = !!getMatch().matches;
@@ -80,35 +79,45 @@ function setMediaShouldUpdate(ref, props) {
80
79
  ...props
81
80
  });
82
81
  }
83
- function getSnapshot({ touched, prev, enabled }) {
84
- return enabled === !1 || !touched || touched.every((key) => mediaState[key] === prev[key]) ? prev : mediaState;
82
+ function subscribe(subscriber) {
83
+ return listeners.add(subscriber), () => {
84
+ listeners.delete(subscriber);
85
+ };
85
86
  }
86
- function useMedia(uidIn, componentContext, debug = !1) {
87
- const uid = uidIn ?? useRef(), hasHydrated = useDidHydrateOnce(), initialState = !isWeb || getDisableSSR(componentContext) || hasHydrated ? mediaState : initState;
87
+ function useMedia(uidIn, componentContext, debug) {
88
+ const uid = uidIn ?? useRef(), disableSSR = getDisableSSR(componentContext), initialState = (disableSSR || !isWeb ? mediaState : initState) || {};
88
89
  let componentState = States.get(uid);
89
90
  componentState || (componentState = { prev: initialState }, States.set(uid, componentState));
90
- const [state, setState] = useState(initialState);
91
- return useIsomorphicLayoutEffect(() => {
92
- function update() {
93
- setState((prev) => {
94
- const componentState2 = States.get(uid);
95
- process.env.NODE_ENV === "development" && debug && console.info("useMedia() update?", getSnapshot(componentState2) !== prev, {
96
- componentState: componentState2,
97
- touched: [...componentState2.touched || []],
98
- prev: { ...componentState2.prev },
99
- next: getSnapshot(componentState2),
100
- mediaState: { ...mediaState }
101
- });
102
- const next = getSnapshot(componentState2);
103
- return next !== prev ? (componentState2.prev = next, next) : prev;
104
- });
105
- }
106
- return update(), listeners.add(update), () => {
107
- listeners.delete(update);
108
- };
109
- }, [uid]), new Proxy(state, {
91
+ const getSnapshot = () => {
92
+ if (!componentState)
93
+ return initialState;
94
+ const { enabled, keys, prev = initialState } = componentState;
95
+ if (enabled === !1)
96
+ return prev;
97
+ const testKeys = keys ?? (enabled && keys) ?? null;
98
+ return !testKeys || Object.keys(testKeys).every((key) => mediaState[key] === prev[key]) ? prev : (componentState.prev = mediaState, mediaState);
99
+ };
100
+ let state;
101
+ if (process.env.TAMAGUI_SYNC_MEDIA_QUERY)
102
+ state = useSyncExternalStore(
103
+ subscribe,
104
+ getSnapshot,
105
+ () => initialState
106
+ );
107
+ else {
108
+ const [_state, setState] = useState(initialState);
109
+ state = _state, useIsomorphicLayoutEffect(() => {
110
+ function update() {
111
+ setState(getSnapshot);
112
+ }
113
+ return update(), disableSSR || Promise.resolve().then(() => {
114
+ update();
115
+ }), subscribe(update);
116
+ }, []);
117
+ }
118
+ return new Proxy(state, {
110
119
  get(_, key) {
111
- return typeof key == "string" && (componentState.touched ||= [], componentState.touched.includes(key) || componentState.touched.push(key), process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
120
+ return typeof key == "string" && (componentState.keys ||= {}, componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
112
121
  }
113
122
  });
114
123
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useMedia.tsx"],
4
- "mappings": "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",
5
- "names": ["componentState"]
4
+ "mappings": "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",
5
+ "names": []
6
6
  }
@@ -1,9 +1,8 @@
1
1
  import { isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { useRef, useState } from "react";
2
+ import { useRef, useState, useSyncExternalStore } from "react";
3
3
  import { getConfig } from "../config.mjs";
4
4
  import { matchMedia } from "../helpers/matchMedia.mjs";
5
5
  import { pseudoDescriptors } from "../helpers/pseudoDescriptors.mjs";
6
- import { useDidHydrateOnce } from "./useDidHydrateOnce.mjs";
7
6
  import { getDisableSSR } from "./useDisableSSR.mjs";
8
7
  let mediaState =
9
8
  // development only safeguard
@@ -55,7 +54,7 @@ function unlisten() {
55
54
  let setupVersion = -1;
56
55
  function setupMediaListeners() {
57
56
  if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
58
- setupVersion = mediaVersion, process.env.NODE_ENV === "development" && unlisten();
57
+ setupVersion = mediaVersion, unlisten();
59
58
  for (const key in mediaQueryConfig) {
60
59
  let update = function () {
61
60
  const next = !!getMatch().matches;
@@ -89,47 +88,45 @@ function setMediaShouldUpdate(ref, props) {
89
88
  ...props
90
89
  });
91
90
  }
92
- function getSnapshot({
93
- touched,
94
- prev,
95
- enabled
96
- }) {
97
- return enabled === !1 || !touched || touched.every(key => mediaState[key] === prev[key]) ? prev : mediaState;
91
+ function subscribe(subscriber) {
92
+ return listeners.add(subscriber), () => {
93
+ listeners.delete(subscriber);
94
+ };
98
95
  }
99
- function useMedia(uidIn, componentContext, debug = !1) {
96
+ function useMedia(uidIn, componentContext, debug) {
100
97
  const uid = uidIn ?? useRef(),
101
- hasHydrated = useDidHydrateOnce(),
102
- initialState = !isWeb || getDisableSSR(componentContext) || hasHydrated ? mediaState : initState;
98
+ disableSSR = getDisableSSR(componentContext),
99
+ initialState = (disableSSR || !isWeb ? mediaState : initState) || {};
103
100
  let componentState = States.get(uid);
104
101
  componentState || (componentState = {
105
102
  prev: initialState
106
103
  }, States.set(uid, componentState));
107
- const [state, setState] = useState(initialState);
108
- return useIsomorphicLayoutEffect(() => {
109
- function update() {
110
- setState(prev => {
111
- const componentState2 = States.get(uid);
112
- process.env.NODE_ENV === "development" && debug && console.info("useMedia() update?", getSnapshot(componentState2) !== prev, {
113
- componentState: componentState2,
114
- touched: [...(componentState2.touched || [])],
115
- prev: {
116
- ...componentState2.prev
117
- },
118
- next: getSnapshot(componentState2),
119
- mediaState: {
120
- ...mediaState
121
- }
122
- });
123
- const next = getSnapshot(componentState2);
124
- return next !== prev ? (componentState2.prev = next, next) : prev;
125
- });
126
- }
127
- return update(), listeners.add(update), () => {
128
- listeners.delete(update);
129
- };
130
- }, [uid]), new Proxy(state, {
104
+ const getSnapshot = () => {
105
+ if (!componentState) return initialState;
106
+ const {
107
+ enabled,
108
+ keys,
109
+ prev = initialState
110
+ } = componentState;
111
+ if (enabled === !1) return prev;
112
+ const testKeys = keys ?? (enabled && keys) ?? null;
113
+ return !testKeys || Object.keys(testKeys).every(key => mediaState[key] === prev[key]) ? prev : (componentState.prev = mediaState, mediaState);
114
+ };
115
+ let state;
116
+ if (process.env.TAMAGUI_SYNC_MEDIA_QUERY) state = useSyncExternalStore(subscribe, getSnapshot, () => initialState);else {
117
+ const [_state, setState] = useState(initialState);
118
+ state = _state, useIsomorphicLayoutEffect(() => {
119
+ function update() {
120
+ setState(getSnapshot);
121
+ }
122
+ return update(), disableSSR || Promise.resolve().then(() => {
123
+ update();
124
+ }), subscribe(update);
125
+ }, []);
126
+ }
127
+ return new Proxy(state, {
131
128
  get(_, key) {
132
- return typeof key == "string" && (componentState.touched ||= [], componentState.touched.includes(key) || componentState.touched.push(key), process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
129
+ return typeof key == "string" && (componentState.keys ||= {}, componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
133
130
  }
134
131
  });
135
132
  }
@@ -1,9 +1,8 @@
1
1
  import { isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { useRef, useState } from "react";
2
+ import { useRef, useState, useSyncExternalStore } from "react";
3
3
  import { getConfig } from "../config";
4
4
  import { matchMedia } from "../helpers/matchMedia";
5
5
  import { pseudoDescriptors } from "../helpers/pseudoDescriptors";
6
- import { useDidHydrateOnce } from "./useDidHydrateOnce";
7
6
  import { getDisableSSR } from "./useDisableSSR";
8
7
  function _array_like_to_array(arr, len) {
9
8
  (len == null || len > arr.length) && (len = arr.length);
@@ -13,9 +12,6 @@ function _array_like_to_array(arr, len) {
13
12
  function _array_with_holes(arr) {
14
13
  if (Array.isArray(arr)) return arr;
15
14
  }
16
- function _array_without_holes(arr) {
17
- if (Array.isArray(arr)) return _array_like_to_array(arr);
18
- }
19
15
  function _define_property(obj, key, value) {
20
16
  return key in obj ? Object.defineProperty(obj, key, {
21
17
  value,
@@ -24,9 +20,6 @@ function _define_property(obj, key, value) {
24
20
  writable: !0
25
21
  }) : obj[key] = value, obj;
26
22
  }
27
- function _iterable_to_array(iter) {
28
- if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
29
- }
30
23
  function _iterable_to_array_limit(arr, i) {
31
24
  var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
32
25
  if (_i != null) {
@@ -49,9 +42,6 @@ function _iterable_to_array_limit(arr, i) {
49
42
  function _non_iterable_rest() {
50
43
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
51
44
  }
52
- function _non_iterable_spread() {
53
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
- }
55
45
  function _object_spread(target) {
56
46
  for (var i = 1; i < arguments.length; i++) {
57
47
  var source = arguments[i] != null ? arguments[i] : {}, ownKeys2 = Object.keys(source);
@@ -81,9 +71,6 @@ function _object_spread_props(target, source) {
81
71
  function _sliced_to_array(arr, i) {
82
72
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
83
73
  }
84
- function _to_consumable_array(arr) {
85
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
86
- }
87
74
  function _unsupported_iterable_to_array(o, minLen) {
88
75
  if (o) {
89
76
  if (typeof o == "string") return _array_like_to_array(o, minLen);
@@ -146,7 +133,7 @@ function setupMediaListeners() {
146
133
  }), update();
147
134
  };
148
135
  if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
149
- setupVersion = mediaVersion, process.env.NODE_ENV === "development" && unlisten();
136
+ setupVersion = mediaVersion, unlisten();
150
137
  for (var key in mediaQueryConfig) _loop(key);
151
138
  }
152
139
  }
@@ -162,46 +149,47 @@ var States = /* @__PURE__ */ new WeakMap();
162
149
  function setMediaShouldUpdate(ref, props) {
163
150
  return States.set(ref, _object_spread({}, States.get(ref), props));
164
151
  }
165
- function getSnapshot(param) {
166
- var touched = param.touched, prev = param.prev, enabled = param.enabled;
167
- if (enabled === !1)
168
- return prev;
169
- var hasntUpdated = !touched || touched.every(function(key) {
170
- return mediaState[key] === prev[key];
171
- });
172
- return hasntUpdated ? prev : mediaState;
152
+ function subscribe(subscriber) {
153
+ return listeners.add(subscriber), function() {
154
+ listeners.delete(subscriber);
155
+ };
173
156
  }
174
- function useMedia(uidIn, componentContext) {
175
- var debug = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, uid = uidIn ?? useRef(), hasHydrated = useDidHydrateOnce(), isHydrated = !isWeb || getDisableSSR(componentContext) || hasHydrated, initialState = isHydrated ? mediaState : initState, componentState = States.get(uid);
157
+ function useMedia(uidIn, componentContext, debug) {
158
+ var uid = uidIn ?? useRef(), disableSSR = getDisableSSR(componentContext), initialState = (disableSSR || !isWeb ? mediaState : initState) || {}, componentState = States.get(uid);
176
159
  componentState || (componentState = {
177
160
  prev: initialState
178
161
  }, States.set(uid, componentState));
179
- var _useState = _sliced_to_array(useState(initialState), 2), state = _useState[0], setState = _useState[1];
180
- return useIsomorphicLayoutEffect(function() {
181
- var update = function() {
182
- setState(function(prev) {
183
- var componentState2 = States.get(uid);
184
- process.env.NODE_ENV === "development" && debug && console.info("useMedia() update?", getSnapshot(componentState2) !== prev, {
185
- componentState: componentState2,
186
- touched: _to_consumable_array(componentState2.touched || []),
187
- prev: _object_spread({}, componentState2.prev),
188
- next: getSnapshot(componentState2),
189
- mediaState: _object_spread({}, mediaState)
190
- });
191
- var next = getSnapshot(componentState2);
192
- return next !== prev ? (componentState2.prev = next, next) : prev;
193
- });
194
- };
195
- return update(), listeners.add(update), function() {
196
- listeners.delete(update);
197
- };
198
- }, [
199
- uid
200
- ]), new Proxy(state, {
162
+ var getSnapshot = function() {
163
+ if (!componentState)
164
+ return initialState;
165
+ var enabled = componentState.enabled, keys = componentState.keys, _componentState_prev = componentState.prev, prev = _componentState_prev === void 0 ? initialState : _componentState_prev;
166
+ if (enabled === !1)
167
+ return prev;
168
+ var _ref, testKeys = (_ref = (keys != null || enabled) && keys) !== null && _ref !== void 0 ? _ref : null, hasntUpdated = !testKeys || Object.keys(testKeys).every(function(key) {
169
+ return mediaState[key] === prev[key];
170
+ });
171
+ return hasntUpdated ? prev : (componentState.prev = mediaState, mediaState);
172
+ }, state;
173
+ if (process.env.TAMAGUI_SYNC_MEDIA_QUERY)
174
+ state = useSyncExternalStore(subscribe, getSnapshot, function() {
175
+ return initialState;
176
+ });
177
+ else {
178
+ var _useState = _sliced_to_array(useState(initialState), 2), _state = _useState[0], setState = _useState[1];
179
+ state = _state, useIsomorphicLayoutEffect(function() {
180
+ var update = function() {
181
+ setState(getSnapshot);
182
+ };
183
+ return update(), disableSSR || Promise.resolve().then(function() {
184
+ update();
185
+ }), subscribe(update);
186
+ }, []);
187
+ }
188
+ return new Proxy(state, {
201
189
  get: function(_, key) {
202
190
  if (typeof key == "string") {
203
191
  var _componentState;
204
- (_componentState = componentState).touched || (_componentState.touched = []), componentState.touched.includes(key) || componentState.touched.push(key), process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key);
192
+ (_componentState = componentState).keys || (_componentState.keys = {}), componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key);
205
193
  }
206
194
  return Reflect.get(state, key);
207
195
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/Users/n8/tamagui/packages/web/src/hooks/useMedia.tsx"],
4
- "mappings": "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",
5
- "names": ["isServer", "isWeb", "useIsomorphicLayoutEffect", "useRef", "useState", "getConfig", "matchMedia", "pseudoDescriptors", "useDidHydrateOnce", "getDisableSSR", "mediaState", "process", "env", "NODE_ENV", "Proxy", "get", "target", "key", "Error", "Reflect", "mediaQueryConfig", "getMedia", "mediaKeys", "Set", "mediaKeyRegex", "isMediaKey", "has", "match", "initState", "defaultMediaImportance", "Object", "keys", "length", "mediaKeysOrdered", "getMediaKeyImportance", "conf", "settings", "mediaPropOrder", "indexOf", "dispose", "mediaVersion", "configureMedia", "config", "media", "mediaQueryDefaultActive", "add", "assign", "disableSSR", "setupMediaListeners", "updateCurrentState", "unlisten", "forEach", "cb", "clear", "setupVersion", "update", "next", "getMatch", "matches", "str", "mediaObjectToString", "addListener", "removeListener", "listeners", "flushing", "flushVersion", "Promise", "resolve", "then", "States", "WeakMap", "setMediaShouldUpdate", "ref", "props", "set", "getSnapshot", "touched", "prev", "enabled", "hasntUpdated", "every", "useMedia", "uidIn", "componentContext", "debug", "uid", "hasHydrated", "isHydrated", "initialState", "componentState", "state", "setState", "console", "info", "delete", "_", "includes", "push", "getMediaImportanceIfMoreImportant", "mediaKey", "importancesUsed", "isSizeMedia", "importance", "camelToHyphen", "replace", "m", "toLowerCase", "cache", "cachedMediaKeyToQuery", "query", "res", "entries", "map", "feature", "value", "test", "join", "mediaKeyToQuery", "mediaKeyMatch", "dimensions", "mediaQueries", "result", "expectedVal", "isMax", "startsWith", "isWidth", "endsWith", "givenVal"]
4
+ "mappings": "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",
5
+ "names": ["isServer", "isWeb", "useIsomorphicLayoutEffect", "useRef", "useState", "useSyncExternalStore", "getConfig", "matchMedia", "pseudoDescriptors", "getDisableSSR", "mediaState", "process", "env", "NODE_ENV", "Proxy", "get", "target", "key", "Error", "Reflect", "mediaQueryConfig", "getMedia", "mediaKeys", "Set", "mediaKeyRegex", "isMediaKey", "has", "match", "initState", "defaultMediaImportance", "Object", "keys", "length", "mediaKeysOrdered", "getMediaKeyImportance", "conf", "settings", "mediaPropOrder", "indexOf", "dispose", "mediaVersion", "configureMedia", "config", "media", "mediaQueryDefaultActive", "add", "assign", "disableSSR", "setupMediaListeners", "updateCurrentState", "unlisten", "forEach", "cb", "clear", "setupVersion", "update", "next", "getMatch", "matches", "str", "mediaObjectToString", "addListener", "removeListener", "listeners", "flushing", "flushVersion", "Promise", "resolve", "then", "States", "WeakMap", "setMediaShouldUpdate", "ref", "props", "set", "subscribe", "subscriber", "delete", "useMedia", "uidIn", "componentContext", "debug", "uid", "initialState", "componentState", "prev", "getSnapshot", "enabled", "testKeys", "hasntUpdated", "every", "state", "TAMAGUI_SYNC_MEDIA_QUERY", "_state", "setState", "_", "console", "info", "getMediaImportanceIfMoreImportant", "mediaKey", "importancesUsed", "isSizeMedia", "importance", "camelToHyphen", "replace", "m", "toLowerCase", "cache", "cachedMediaKeyToQuery", "query", "res", "entries", "map", "feature", "value", "test", "join", "mediaKeyToQuery", "mediaKeyMatch", "dimensions", "mediaQueries", "result", "expectedVal", "isMax", "startsWith", "isWidth", "endsWith", "givenVal"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/web",
3
- "version": "1.101.1",
3
+ "version": "1.101.3",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -27,18 +27,18 @@
27
27
  "reset.css"
28
28
  ],
29
29
  "dependencies": {
30
- "@tamagui/compose-refs": "1.101.1",
31
- "@tamagui/constants": "1.101.1",
32
- "@tamagui/helpers": "1.101.1",
33
- "@tamagui/normalize-css-color": "1.101.1",
34
- "@tamagui/timer": "1.101.1",
35
- "@tamagui/types": "1.101.1",
36
- "@tamagui/use-did-finish-ssr": "1.101.1",
37
- "@tamagui/use-event": "1.101.1",
38
- "@tamagui/use-force-update": "1.101.1"
30
+ "@tamagui/compose-refs": "1.101.3",
31
+ "@tamagui/constants": "1.101.3",
32
+ "@tamagui/helpers": "1.101.3",
33
+ "@tamagui/normalize-css-color": "1.101.3",
34
+ "@tamagui/timer": "1.101.3",
35
+ "@tamagui/types": "1.101.3",
36
+ "@tamagui/use-did-finish-ssr": "1.101.3",
37
+ "@tamagui/use-event": "1.101.3",
38
+ "@tamagui/use-force-update": "1.101.3"
39
39
  },
40
40
  "devDependencies": {
41
- "@tamagui/build": "1.101.1",
41
+ "@tamagui/build": "1.101.3",
42
42
  "@testing-library/react": "^14.0.0",
43
43
  "csstype": "^3.0.10",
44
44
  "react": "^18.2.0",
@@ -765,20 +765,22 @@ export function createComponent<
765
765
 
766
766
  // only listen for changes if we are using raw theme values or media space, or dynamic media (native)
767
767
  // array = space media breakpoints
768
- const isMediaArray = splitStyles.hasMedia && Array.isArray(splitStyles.hasMedia)
768
+ const hasRuntimeMediaKeys = splitStyles.hasMedia && splitStyles.hasMedia !== true
769
769
  const shouldListenForMedia =
770
770
  didGetVariableValue() ||
771
- isMediaArray ||
771
+ hasRuntimeMediaKeys ||
772
772
  (noClassNames && splitStyles.hasMedia === true)
773
773
 
774
- const mediaListeningKeys = isMediaArray ? (splitStyles.hasMedia as string[]) : null
774
+ const mediaListeningKeys = hasRuntimeMediaKeys
775
+ ? (splitStyles.hasMedia as Record<string, boolean>)
776
+ : null
775
777
  if (process.env.NODE_ENV === 'development' && debugProp) {
776
778
  console.info(`useMedia() createComponent`, shouldListenForMedia, mediaListeningKeys)
777
779
  }
778
780
 
779
781
  setMediaShouldUpdate(stateRef, {
780
782
  enabled: shouldListenForMedia,
781
- touched: mediaListeningKeys,
783
+ keys: mediaListeningKeys,
782
784
  })
783
785
 
784
786
  const {
@@ -1360,7 +1362,7 @@ export function createComponent<
1360
1362
  elementType,
1361
1363
  events,
1362
1364
  isAnimated,
1363
- isMediaArray,
1365
+ hasRuntimeMediaKeys,
1364
1366
  isStringElement,
1365
1367
  mediaListeningKeys,
1366
1368
  pseudos,
@@ -176,7 +176,7 @@ export const getSplitStyles: StyleSplitter = (
176
176
 
177
177
  let pseudos: PseudoStyles | null = null
178
178
  let space: SpaceTokens | null = props.space
179
- let hasMedia: boolean | string[] = false
179
+ let hasMedia: boolean | Record<string, boolean> = false
180
180
  let dynamicThemeAccess: boolean | undefined
181
181
  let pseudoGroups: Set<string> | undefined
182
182
  let mediaGroups: Set<string> | undefined
@@ -830,10 +830,10 @@ export const getSplitStyles: StyleSplitter = (
830
830
  hasMedia ||= true
831
831
 
832
832
  if (hasSpace || !shouldDoClasses || styleProps.willBeAnimated) {
833
- if (!Array.isArray(hasMedia)) {
834
- hasMedia = []
833
+ if (typeof hasMedia !== 'object') {
834
+ hasMedia = {}
835
835
  }
836
- hasMedia.push(mediaKeyShort)
836
+ hasMedia[mediaKeyShort] = true
837
837
  }
838
838
 
839
839
  // can bail early
@@ -3,21 +3,17 @@ import { useEffect, useSyncExternalStore } from 'react'
3
3
  let didHydrateOnce = false
4
4
 
5
5
  export function useDidHydrateOnceRoot() {
6
- if (process.env.TAMAGUI_REACT_19 && process.env.TAMAGUI_TARGET === 'web') {
7
- if (!process.env.TAMAGUI_DISABLE_HYDRATION_OPTIMIZATION) {
8
- useEffect(() => {
9
- const tm = setInterval(() => {
10
- if (Date.now() - last > 50) {
11
- didHydrateOnce = true
12
- clearInterval(tm)
13
- }
14
- }, 16)
15
- return () => {
16
- clearInterval(tm)
17
- }
18
- }, [])
19
- }
20
- }
6
+ // useEffect(() => {
7
+ // const tm = setInterval(() => {
8
+ // if (Date.now() - last > 50) {
9
+ // didHydrateOnce = true
10
+ // clearInterval(tm)
11
+ // }
12
+ // }, 16)
13
+ // return () => {
14
+ // clearInterval(tm)
15
+ // }
16
+ // }, [])
21
17
  return true
22
18
  }
23
19
 
@@ -27,12 +23,11 @@ export function useDidHydrateOnce() {
27
23
  if (process.env.TAMAGUI_TARGET !== 'web') {
28
24
  return true
29
25
  }
30
- if (process.env.TAMAGUI_REACT_19) {
31
- if (!didHydrateOnce) {
32
- last = Date.now()
33
- }
34
- return didHydrateOnce
35
- }
26
+ // if (process.env.TAMAGUI_REACT_19) {
27
+ // if (!didHydrateOnce) {
28
+ // last = Date.now()
29
+ // }
30
+ // }
36
31
  return useDidHydrateSync()
37
32
  }
38
33