const windowCallbacks = new Set(); let windowResizeHandler; function createWindowResizeHandler() { windowResizeHandler = () => { const info = { get width() { return window.innerWidth; }, get height() { return window.innerHeight; }, }; windowCallbacks.forEach((callback) => callback(info)); }; window.addEventListener("resize", windowResizeHandler); } function resizeWindow(callback) { windowCallbacks.add(callback); if (!windowResizeHandler) createWindowResizeHandler(); return () => { windowCallbacks.delete(callback); if (!windowCallbacks.size && typeof windowResizeHandler === "function") { window.removeEventListener("resize", windowResizeHandler); windowResizeHandler = undefined; } }; } export { resizeWindow };