@tamagui/core 1.116.4 → 1.116.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/native.js CHANGED
@@ -2990,21 +2990,18 @@ var require_useMedia_native = __commonJS({
2990
2990
  listeners.delete(subscriber);
2991
2991
  };
2992
2992
  }
2993
+ var CurrentKeysMap = /* @__PURE__ */ new WeakMap();
2993
2994
  function useMedia2(cc, debug) {
2994
- var disableSSR = (0, import_config.getSetting)("disableSSR") || (0, import_useDisableSSR.getDisableSSR)(cc), initialState = disableSSR || !import_constants2.isWeb ? mediaState2 : initState, [state, setState] = import_react3.default.useState(initialState), currentKeys, getCurrentKeys = function() {
2995
- return currentKeys;
2996
- };
2995
+ var disableSSR = (0, import_config.getSetting)("disableSSR") || (0, import_useDisableSSR.getDisableSSR)(cc), initialState = disableSSR || !import_constants2.isWeb ? mediaState2 : initState, [state, setState] = import_react3.default.useState(initialState);
2996
+ CurrentKeysMap.get(setState) || CurrentKeysMap.set(setState, /* @__PURE__ */ new Set());
2997
+ var currentKeys = CurrentKeysMap.get(setState);
2997
2998
  function getSnapshot(cur) {
2998
- var keys = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : cur.lastKeys;
2999
- if (!keys) return cur;
2999
+ if (!currentKeys) return cur;
3000
3000
  var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
3001
3001
  try {
3002
- for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
3002
+ for (var _iterator = currentKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
3003
3003
  var key = _step.value;
3004
- if (mediaState2[key] !== cur[key]) return process.env.NODE_ENV === "development" && debug && console.warn("useMedia()\u270D\uFE0F", key, cur[key], ">", mediaState2[key]), {
3005
- ...mediaState2,
3006
- lastKeys: new Set(keys)
3007
- };
3004
+ if (mediaState2[key] !== cur[key]) return process.env.NODE_ENV === "development" && debug && console.warn("useMedia()\u270D\uFE0F", key, cur[key], ">", mediaState2[key]), mediaState2;
3008
3005
  }
3009
3006
  } catch (err) {
3010
3007
  _didIteratorError = !0, _iteratorError = err;
@@ -3023,22 +3020,26 @@ var require_useMedia_native = __commonJS({
3023
3020
  }), (0, import_constants2.useIsomorphicLayoutEffect)(function() {
3024
3021
  var update = function() {
3025
3022
  return setState(function(prev) {
3026
- return getSnapshot(
3027
- prev,
3028
- // because the !didHydrateOnce logic we can't update as we render
3029
- // we need to get the current keys in case we added
3030
- // these only ever add keys so likely ok?
3031
- getCurrentKeys()
3032
- );
3023
+ var next = getSnapshot(prev);
3024
+ return next;
3033
3025
  });
3034
3026
  };
3035
- return update(), subscribe(update);
3036
- }, []), new Proxy(state, {
3027
+ update();
3028
+ var tm = setTimeout(function() {
3029
+ currentKeys.size && update();
3030
+ }), dispose2 = subscribe(update);
3031
+ return function() {
3032
+ dispose2(), clearTimeout(tm);
3033
+ };
3034
+ }, [
3035
+ setState
3036
+ ]), new Proxy(state, {
3037
3037
  get(_, key) {
3038
3038
  if (isRendering && !disableMediaTouch && typeof key == "string") {
3039
- var needsUpdateKeys = !state.lastKeys || !state.lastKeys.has(key);
3040
- if ((needsUpdateKeys || state[key] !== mediaState2[key]) && (process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key), currentKeys || (currentKeys = /* @__PURE__ */ new Set()), currentKeys.add(key), !isInitialState)) {
3041
- var next = getSnapshot(state, currentKeys);
3039
+ currentKeys.add(key);
3040
+ var shouldUpdate = state[key] !== mediaState2[key];
3041
+ if (shouldUpdate && (process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key), !isInitialState)) {
3042
+ var next = getSnapshot(state);
3042
3043
  next !== state && setState(next);
3043
3044
  }
3044
3045
  }