{"version":3,"file":"use-resize-observer.cjs","sources":["../../../src/components/ScrollArea/use-resize-observer.ts"],"sourcesContent":["import { useCallbackRef, useIsomorphicEffect } from '@raikou/hooks';\n\nexport function useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n  const handleResize = useCallbackRef(onResize);\n\n  useIsomorphicEffect(() => {\n    let rAF = 0;\n    if (element) {\n      const resizeObserver = new ResizeObserver(() => {\n        cancelAnimationFrame(rAF);\n        rAF = window.requestAnimationFrame(handleResize);\n      });\n\n      resizeObserver.observe(element);\n\n      return () => {\n        window.cancelAnimationFrame(rAF);\n        resizeObserver.unobserve(element);\n      };\n    }\n\n    return undefined;\n  }, [element, handleResize]);\n}\n"],"names":["useCallbackRef","useIsomorphicEffect"],"mappings":";;;;AAEgB,SAAA,iBAAA,CAAkB,SAA6B,QAAsB,EAAA;AACnF,EAAM,MAAA,YAAA,GAAeA,qBAAe,QAAQ,CAAA;AAE5C,EAAAC,yBAAA,CAAoB,MAAM;AACxB,IAAA,IAAI,GAAM,GAAA,CAAA;AACV,IAAA,IAAI,OAAS,EAAA;AACX,MAAM,MAAA,cAAA,GAAiB,IAAI,cAAA,CAAe,MAAM;AAC9C,QAAA,oBAAA,CAAqB,GAAG,CAAA;AACxB,QAAM,GAAA,GAAA,MAAA,CAAO,sBAAsB,YAAY,CAAA;AAAA,OAChD,CAAA;AAED,MAAA,cAAA,CAAe,QAAQ,OAAO,CAAA;AAE9B,MAAA,OAAO,MAAM;AACX,QAAA,MAAA,CAAO,qBAAqB,GAAG,CAAA;AAC/B,QAAA,cAAA,CAAe,UAAU,OAAO,CAAA;AAAA,OAClC;AAAA;AAGF,IAAO,OAAA,KAAA,CAAA;AAAA,GACN,EAAA,CAAC,OAAS,EAAA,YAAY,CAAC,CAAA;AAC5B;;;;"}