{"version":3,"file":"useSidebarClickAway.mjs","sources":["../../../../src/components/Sidebar/useSidebarClickAway.ts"],"sourcesContent":["import React from 'react';\n\n/**\n * Cannot use the react-use useClickAway directly as it relies on mousedown event which is not ideal as the element selection uses pointerdown\n * @param ref\n * @param onClickAway\n */\nexport function useCustomClickAway(onClickAway: (evt: MouseEvent | TouchEvent) => void) {\n  const ref = React.useRef<HTMLDivElement>(null);\n  const refCb = React.useRef(onClickAway);\n\n  React.useLayoutEffect(() => {\n    refCb.current = onClickAway;\n  });\n\n  React.useEffect(() => {\n    const handler = (e: MouseEvent | TouchEvent) => {\n      const element = ref.current;\n      if (element && e.target instanceof Node && !element.contains(e.target)) {\n        refCb.current(e);\n      }\n    };\n\n    document.addEventListener('pointerdown', handler);\n\n    return () => {\n      document.removeEventListener('pointerdown', handler);\n    };\n  }, []);\n\n  return ref;\n}\n"],"names":["React"],"mappings":";;;AAOO,SAAS,mBAAmB,WAAA,EAAqD;AACtF,EAAA,MAAM,GAAA,GAAMA,cAAA,CAAM,MAAA,CAAuB,IAAI,CAAA;AAC7C,EAAA,MAAM,KAAA,GAAQA,cAAA,CAAM,MAAA,CAAO,WAAW,CAAA;AAEtC,EAAAA,cAAA,CAAM,gBAAgB,MAAM;AAC1B,IAAA,KAAA,CAAM,OAAA,GAAU,WAAA;AAAA,EAClB,CAAC,CAAA;AAED,EAAAA,cAAA,CAAM,UAAU,MAAM;AACpB,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAA+B;AAC9C,MAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,MAAA,IAAI,OAAA,IAAW,EAAE,MAAA,YAAkB,IAAA,IAAQ,CAAC,OAAA,CAAQ,QAAA,CAAS,CAAA,CAAE,MAAM,CAAA,EAAG;AACtE,QAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,MACjB;AAAA,IACF,CAAA;AAEA,IAAA,QAAA,CAAS,gBAAA,CAAiB,eAAe,OAAO,CAAA;AAEhD,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,eAAe,OAAO,CAAA;AAAA,IACrD,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,GAAA;AACT;;;;"}