import { ownerWindow } from "../../internals/dom/owner-window.ts"; /** * Mirror React's `subscribeToVisualViewportResize`. Keeps * `visualScaleRef.current` in sync with the OS scale so a virtual cursor * can invert the scale after a pinch-zoom. */ export function subscribeToVisualViewportResize( element: Element, visualScaleRef: { current: number }, ): () => void { const vV = ownerWindow(element).visualViewport; if (!vV) { return () => {}; } function handleVisualResize(): void { if (vV) { visualScaleRef.current = vV.scale; } } handleVisualResize(); vV.addEventListener("resize", handleVisualResize); return () => { vV.removeEventListener("resize", handleVisualResize); }; }