@tamagui/core 1.116.5 → 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.
@@ -2804,21 +2804,18 @@ var require_useMedia_native = __commonJS({
2804
2804
  listeners.delete(subscriber);
2805
2805
  };
2806
2806
  }
2807
+ var CurrentKeysMap = /* @__PURE__ */ new WeakMap();
2807
2808
  function useMedia2(cc, debug) {
2808
- 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() {
2809
- return currentKeys;
2810
- };
2809
+ 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);
2810
+ CurrentKeysMap.get(setState) || CurrentKeysMap.set(setState, /* @__PURE__ */ new Set());
2811
+ var currentKeys = CurrentKeysMap.get(setState);
2811
2812
  function getSnapshot(cur) {
2812
- var keys = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : cur.lastKeys;
2813
- if (!keys) return cur;
2813
+ if (!currentKeys) return cur;
2814
2814
  var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
2815
2815
  try {
2816
- for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
2816
+ for (var _iterator = currentKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
2817
2817
  var key = _step.value;
2818
- if (mediaState2[key] !== cur[key]) return {
2819
- ...mediaState2,
2820
- lastKeys: new Set(keys)
2821
- };
2818
+ if (mediaState2[key] !== cur[key]) return mediaState2;
2822
2819
  }
2823
2820
  } catch (err) {
2824
2821
  _didIteratorError = !0, _iteratorError = err;
@@ -2837,23 +2834,26 @@ var require_useMedia_native = __commonJS({
2837
2834
  }), (0, import_constants2.useIsomorphicLayoutEffect)(function() {
2838
2835
  var update = function() {
2839
2836
  return setState(function(prev) {
2840
- var keys = getCurrentKeys();
2841
- return getSnapshot(
2842
- prev,
2843
- // because the !didHydrateOnce logic we can't update as we render
2844
- // we need to get the current keys in case we added
2845
- // these only ever add keys so likely ok?
2846
- keys
2847
- );
2837
+ var next = getSnapshot(prev);
2838
+ return next;
2848
2839
  });
2849
2840
  };
2850
- return update(), subscribe(update);
2851
- }, []), new Proxy(state, {
2841
+ update();
2842
+ var tm = setTimeout(function() {
2843
+ currentKeys.size && update();
2844
+ }), dispose2 = subscribe(update);
2845
+ return function() {
2846
+ dispose2(), clearTimeout(tm);
2847
+ };
2848
+ }, [
2849
+ setState
2850
+ ]), new Proxy(state, {
2852
2851
  get(_, key) {
2853
2852
  if (isRendering && !disableMediaTouch && typeof key == "string") {
2854
- var needsUpdateKeys = !state.lastKeys || !state.lastKeys.has(key);
2855
- if ((needsUpdateKeys || state[key] !== mediaState2[key]) && (currentKeys || (currentKeys = /* @__PURE__ */ new Set()), currentKeys.add(key), !isInitialState)) {
2856
- var next = getSnapshot(state, currentKeys);
2853
+ currentKeys.add(key);
2854
+ var shouldUpdate = state[key] !== mediaState2[key];
2855
+ if (shouldUpdate && !isInitialState) {
2856
+ var next = getSnapshot(state);
2857
2857
  next !== state && setState(next);
2858
2858
  }
2859
2859
  }