{"ast":null,"code":"import createEventHandle from \"../createEventHandle\";\nimport useLayoutEffect from \"../useLayoutEffect\";\nimport useStable from \"../useStable\";\nexport default function useEvent(event, options) {\n  var targetListeners = useStable(function () {\n    return new Map();\n  });\n  var addListener = useStable(function () {\n    var addEventListener = createEventHandle(event, options);\n    return function (target, callback) {\n      var removeTargetListener = targetListeners.get(target);\n\n      if (removeTargetListener != null) {\n        removeTargetListener();\n      }\n\n      if (callback == null) {\n        targetListeners.delete(target);\n      }\n\n      var removeEventListener = addEventListener(target, callback);\n      targetListeners.set(target, removeEventListener);\n      return removeEventListener;\n    };\n  });\n  useLayoutEffect(function () {\n    return function () {\n      targetListeners.forEach(function (removeListener) {\n        removeListener();\n      });\n      targetListeners.clear();\n    };\n  }, []);\n  return addListener;\n}","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/modules/useEvent/index.js"],"names":["createEventHandle","useLayoutEffect","useStable","useEvent","event","options","targetListeners","Map","addListener","addEventListener","target","callback","removeTargetListener","get","delete","removeEventListener","set","forEach","removeListener","clear"],"mappings":"AAQA,OAAOA,iBAAP;AACA,OAAOC,eAAP;AACA,OAAOC,SAAP;AAWA,eAAe,SAASC,QAAT,CAAkBC,KAAlB,EAAyBC,OAAzB,EAAkC;AAC/C,MAAIC,eAAe,GAAGJ,SAAS,CAAC,YAAY;AAC1C,WAAO,IAAIK,GAAJ,EAAP;AACD,GAF8B,CAA/B;AAGA,MAAIC,WAAW,GAAGN,SAAS,CAAC,YAAY;AACtC,QAAIO,gBAAgB,GAAGT,iBAAiB,CAACI,KAAD,EAAQC,OAAR,CAAxC;AACA,WAAO,UAAUK,MAAV,EAAkBC,QAAlB,EAA4B;AACjC,UAAIC,oBAAoB,GAAGN,eAAe,CAACO,GAAhB,CAAoBH,MAApB,CAA3B;;AAEA,UAAIE,oBAAoB,IAAI,IAA5B,EAAkC;AAChCA,QAAAA,oBAAoB;AACrB;;AAED,UAAID,QAAQ,IAAI,IAAhB,EAAsB;AACpBL,QAAAA,eAAe,CAACQ,MAAhB,CAAuBJ,MAAvB;AACD;;AAED,UAAIK,mBAAmB,GAAGN,gBAAgB,CAACC,MAAD,EAASC,QAAT,CAA1C;AACAL,MAAAA,eAAe,CAACU,GAAhB,CAAoBN,MAApB,EAA4BK,mBAA5B;AACA,aAAOA,mBAAP;AACD,KAdD;AAeD,GAjB0B,CAA3B;AAkBAd,EAAAA,eAAe,CAAC,YAAY;AAC1B,WAAO,YAAY;AACjBK,MAAAA,eAAe,CAACW,OAAhB,CAAwB,UAAUC,cAAV,EAA0B;AAChDA,QAAAA,cAAc;AACf,OAFD;AAGAZ,MAAAA,eAAe,CAACa,KAAhB;AACD,KALD;AAMD,GAPc,EAOZ,EAPY,CAAf;AAQA,SAAOX,WAAP;AACD","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createEventHandle from '../createEventHandle';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n *   click.setListener(target, onClick);\n *   return () => click.clear();\n * }).\n */\nexport default function useEvent(event, options) {\n  var targetListeners = useStable(function () {\n    return new Map();\n  });\n  var addListener = useStable(function () {\n    var addEventListener = createEventHandle(event, options);\n    return function (target, callback) {\n      var removeTargetListener = targetListeners.get(target);\n\n      if (removeTargetListener != null) {\n        removeTargetListener();\n      }\n\n      if (callback == null) {\n        targetListeners.delete(target);\n      }\n\n      var removeEventListener = addEventListener(target, callback);\n      targetListeners.set(target, removeEventListener);\n      return removeEventListener;\n    };\n  });\n  useLayoutEffect(function () {\n    return function () {\n      targetListeners.forEach(function (removeListener) {\n        removeListener();\n      });\n      targetListeners.clear();\n    };\n  }, []);\n  return addListener;\n}"]},"metadata":{},"sourceType":"module"}