{"version":3,"file":"useScrollBarWidth.mjs","names":["useEffect","useState","useRef","useScrollBarWidth","vertical","scrollBarWidth","setScrollBarWidth","af","calculateScrollBar","window","visualViewport","innerHeight","height","innerWidth","width","handleResize","current","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame"],"sources":["../../../src/utils/use/useScrollBarWidth.ts"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\n\nexport function useScrollBarWidth(vertical = true): number {\n  const [scrollBarWidth, setScrollBarWidth] = useState(0);\n  const af = useRef<number | null>(null);\n\n  useEffect(() => {\n    const calculateScrollBar = () => {\n      if (!window.visualViewport) return;\n\n      if (!vertical) {\n        setScrollBarWidth(window.innerHeight - window.visualViewport.height);\n        return;\n      }\n\n      setScrollBarWidth(window.innerWidth - window.visualViewport.width);\n    };\n\n    const handleResize = () => {\n      // to handle resize 1 time per frame\n      if (af.current !== null) return;\n\n      af.current = requestAnimationFrame(() => {\n        calculateScrollBar();\n        af.current = null;\n      });\n    };\n\n    calculateScrollBar();\n    window.addEventListener('resize', handleResize);\n\n    return () => {\n      window.removeEventListener('resize', handleResize);\n      if (af.current !== null) cancelAnimationFrame(af.current);\n    };\n  }, []);\n\n  return scrollBarWidth;\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAEnD,OAAO,SAASC,iBAAiBA,CAACC,QAAQ,GAAG,IAAI,EAAU;EACzD,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGL,QAAQ,CAAC,CAAC,CAAC;EACvD,MAAMM,EAAE,GAAGL,MAAM,CAAgB,IAAI,CAAC;EAEtCF,SAAS,CAAC,MAAM;IACd,MAAMQ,kBAAkB,GAAGA,CAAA,KAAM;MAC/B,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE;MAE5B,IAAI,CAACN,QAAQ,EAAE;QACbE,iBAAiB,CAACG,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACC,cAAc,CAACE,MAAM,CAAC;QACpE;MACF;MAEAN,iBAAiB,CAACG,MAAM,CAACI,UAAU,GAAGJ,MAAM,CAACC,cAAc,CAACI,KAAK,CAAC;IACpE,CAAC;IAED,MAAMC,YAAY,GAAGA,CAAA,KAAM;MACzB;MACA,IAAIR,EAAE,CAACS,OAAO,KAAK,IAAI,EAAE;MAEzBT,EAAE,CAACS,OAAO,GAAGC,qBAAqB,CAAC,MAAM;QACvCT,kBAAkB,CAAC,CAAC;QACpBD,EAAE,CAACS,OAAO,GAAG,IAAI;MACnB,CAAC,CAAC;IACJ,CAAC;IAEDR,kBAAkB,CAAC,CAAC;IACpBC,MAAM,CAACS,gBAAgB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAE/C,OAAO,MAAM;MACXN,MAAM,CAACU,mBAAmB,CAAC,QAAQ,EAAEJ,YAAY,CAAC;MAClD,IAAIR,EAAE,CAACS,OAAO,KAAK,IAAI,EAAEI,oBAAoB,CAACb,EAAE,CAACS,OAAO,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOX,cAAc;AACvB","ignoreList":[]}