Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
2.7 KiB
Plaintext
1 line
2.7 KiB
Plaintext
{"version":3,"file":"index.js","names":["React","createContext","use","useEffect","useRef","ClickOutsideContext","ClickOutsideProvider","children","listeners","Set","handleClick","event","current","forEach","handler","ref","contains","target","document","addEventListener","removeEventListener","register","listener","add","unregister","delete","_jsx","value","useClickOutsideContext","context","Error"],"sources":["../../../src/providers/ClickOutside/index.tsx"],"sourcesContent":["import React, { createContext, use, useEffect, useRef } from 'react'\n\ntype Listener = {\n handler: () => void\n ref: React.RefObject<HTMLElement>\n}\n\nconst ClickOutsideContext = createContext<{\n register: (listener: Listener) => void\n unregister: (listener: Listener) => void\n} | null>(null)\n\nexport const ClickOutsideProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const listeners = useRef<Set<Listener>>(new Set())\n\n useEffect(() => {\n const handleClick = (event: MouseEvent) => {\n listeners.current.forEach(({ handler, ref }) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n handler()\n }\n })\n }\n\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [])\n\n const register = (listener: Listener) => listeners.current.add(listener)\n const unregister = (listener: Listener) => listeners.current.delete(listener)\n\n return <ClickOutsideContext value={{ register, unregister }}>{children}</ClickOutsideContext>\n}\n\nexport const useClickOutsideContext = () => {\n const context = use(ClickOutsideContext)\n if (!context) {\n throw new Error('useClickOutside must be used within a ClickOutsideProvider')\n }\n return context\n}\n"],"mappings":";AAAA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAO7D,MAAMC,mBAAA,gBAAsBJ,aAAA,CAGlB;AAEV,OAAO,MAAMK,oBAAA,GAAgEA,CAAC;EAAEC;AAAQ,CAAE;EACxF,MAAMC,SAAA,GAAYJ,MAAA,CAAsB,IAAIK,GAAA;EAE5CN,SAAA,CAAU;IACR,MAAMO,WAAA,GAAeC,KAAA;MACnBH,SAAA,CAAUI,OAAO,CAACC,OAAO,CAAC,CAAC;QAAEC,OAAO;QAAEC;MAAG,CAAE;QACzC,IAAIA,GAAA,CAAIH,OAAO,IAAI,CAACG,GAAA,CAAIH,OAAO,CAACI,QAAQ,CAACL,KAAA,CAAMM,MAAM,GAAW;UAC9DH,OAAA;QACF;MACF;IACF;IAEAI,QAAA,CAASC,gBAAgB,CAAC,aAAaT,WAAA;IACvC,OAAO,MAAMQ,QAAA,CAASE,mBAAmB,CAAC,aAAaV,WAAA;EACzD,GAAG,EAAE;EAEL,MAAMW,QAAA,GAAYC,QAAA,IAAuBd,SAAA,CAAUI,OAAO,CAACW,GAAG,CAACD,QAAA;EAC/D,MAAME,UAAA,GAAcF,QAAA,IAAuBd,SAAA,CAAUI,OAAO,CAACa,MAAM,CAACH,QAAA;EAEpE,oBAAOI,IAAA,CAACrB,mBAAA;IAAoBsB,KAAA,EAAO;MAAEN,QAAA;MAAUG;IAAW;cAAIjB;;AAChE;AAEA,OAAO,MAAMqB,sBAAA,GAAyBA,CAAA;EACpC,MAAMC,OAAA,GAAU3B,GAAA,CAAIG,mBAAA;EACpB,IAAI,CAACwB,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EACA,OAAOD,OAAA;AACT","ignoreList":[]} |