@butternutbox/pawprint-native 1.6.1 → 1.6.2

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/index.js CHANGED
@@ -9041,22 +9041,32 @@ var StyledRoot14 = styled51(View)(({ theme: theme2 }) => {
9041
9041
  gap: parseTokenValue48(spacing.gap)
9042
9042
  };
9043
9043
  });
9044
+ var isSamePosition = (a, b) => a !== null && b !== null && a.width === b.width && a.height === b.height && a.pageX === b.pageX && a.pageY === b.pageY;
9044
9045
  function SelectFieldAnchor({ triggerRef, enabled }) {
9045
- const { setTriggerPosition } = SelectPrimitive3.useRootContext();
9046
+ const { triggerPosition, setTriggerPosition } = SelectPrimitive3.useRootContext();
9047
+ const anchoredRef = React66.useRef(null);
9048
+ React66.useEffect(() => {
9049
+ anchoredRef.current = triggerPosition != null ? triggerPosition : null;
9050
+ }, [triggerPosition]);
9046
9051
  React66.useEffect(() => {
9047
9052
  if (!enabled) return;
9048
- const reanchor = () => {
9053
+ let frame;
9054
+ let previous = null;
9055
+ const track = () => {
9049
9056
  var _a;
9050
9057
  (_a = triggerRef.current) == null ? void 0 : _a.measure((_x, _y, width, height, pageX, pageY) => {
9051
- setTriggerPosition({ width, height, pageX, pageY });
9058
+ const measured = { width, height, pageX, pageY };
9059
+ const settled = isSamePosition(measured, previous);
9060
+ if (settled && !isSamePosition(measured, anchoredRef.current)) {
9061
+ anchoredRef.current = measured;
9062
+ setTriggerPosition(measured);
9063
+ }
9064
+ previous = measured;
9052
9065
  });
9066
+ frame = requestAnimationFrame(track);
9053
9067
  };
9054
- const shown = Keyboard.addListener("keyboardDidShow", reanchor);
9055
- const hidden = Keyboard.addListener("keyboardDidHide", reanchor);
9056
- return () => {
9057
- shown.remove();
9058
- hidden.remove();
9059
- };
9068
+ frame = requestAnimationFrame(track);
9069
+ return () => cancelAnimationFrame(frame);
9060
9070
  }, [enabled, setTriggerPosition, triggerRef]);
9061
9071
  return null;
9062
9072
  }