18a9c24064f58b75c9d9f6d28a2d2ba6.json 4.47 KB
{"ast":null,"code":"import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n  var cacheElementRef = useRef(); // Cache callback\n\n  var callbackRef = useRef(callback);\n  callbackRef.current = callback; // Internal motion event handler\n\n  var onInternalMotionEnd = React.useCallback(function (event) {\n    callbackRef.current(event);\n  }, []); // Remove events\n\n  function removeMotionEvents(element) {\n    if (element) {\n      element.removeEventListener(transitionEndName, onInternalMotionEnd);\n      element.removeEventListener(animationEndName, onInternalMotionEnd);\n    }\n  } // Patch events\n\n\n  function patchMotionEvents(element) {\n    if (cacheElementRef.current && cacheElementRef.current !== element) {\n      removeMotionEvents(cacheElementRef.current);\n    }\n\n    if (element && element !== cacheElementRef.current) {\n      element.addEventListener(transitionEndName, onInternalMotionEnd);\n      element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n      cacheElementRef.current = element;\n    }\n  } // Clean up when removed\n\n\n  React.useEffect(function () {\n    return function () {\n      removeMotionEvents(cacheElementRef.current);\n    };\n  }, []);\n  return [patchMotionEvents, removeMotionEvents];\n});","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-motion/es/hooks/useDomMotionEvents.js"],"names":["React","useRef","animationEndName","transitionEndName","callback","cacheElementRef","callbackRef","current","onInternalMotionEnd","useCallback","event","removeMotionEvents","element","removeEventListener","patchMotionEvents","addEventListener","useEffect"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT,QAAuB,OAAvB;AACA,SAASC,gBAAT,EAA2BC,iBAA3B,QAAoD,gBAApD;AACA,gBAAgB,UAAUC,QAAV,EAAoB;AAClC,MAAIC,eAAe,GAAGJ,MAAM,EAA5B,CADkC,CACF;;AAEhC,MAAIK,WAAW,GAAGL,MAAM,CAACG,QAAD,CAAxB;AACAE,EAAAA,WAAW,CAACC,OAAZ,GAAsBH,QAAtB,CAJkC,CAIF;;AAEhC,MAAII,mBAAmB,GAAGR,KAAK,CAACS,WAAN,CAAkB,UAAUC,KAAV,EAAiB;AAC3DJ,IAAAA,WAAW,CAACC,OAAZ,CAAoBG,KAApB;AACD,GAFyB,EAEvB,EAFuB,CAA1B,CANkC,CAQ1B;;AAER,WAASC,kBAAT,CAA4BC,OAA5B,EAAqC;AACnC,QAAIA,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACC,mBAAR,CAA4BV,iBAA5B,EAA+CK,mBAA/C;AACAI,MAAAA,OAAO,CAACC,mBAAR,CAA4BX,gBAA5B,EAA8CM,mBAA9C;AACD;AACF,GAfiC,CAehC;;;AAGF,WAASM,iBAAT,CAA2BF,OAA3B,EAAoC;AAClC,QAAIP,eAAe,CAACE,OAAhB,IAA2BF,eAAe,CAACE,OAAhB,KAA4BK,OAA3D,EAAoE;AAClED,MAAAA,kBAAkB,CAACN,eAAe,CAACE,OAAjB,CAAlB;AACD;;AAED,QAAIK,OAAO,IAAIA,OAAO,KAAKP,eAAe,CAACE,OAA3C,EAAoD;AAClDK,MAAAA,OAAO,CAACG,gBAAR,CAAyBZ,iBAAzB,EAA4CK,mBAA5C;AACAI,MAAAA,OAAO,CAACG,gBAAR,CAAyBb,gBAAzB,EAA2CM,mBAA3C,EAFkD,CAEe;;AAEjEH,MAAAA,eAAe,CAACE,OAAhB,GAA0BK,OAA1B;AACD;AACF,GA7BiC,CA6BhC;;;AAGFZ,EAAAA,KAAK,CAACgB,SAAN,CAAgB,YAAY;AAC1B,WAAO,YAAY;AACjBL,MAAAA,kBAAkB,CAACN,eAAe,CAACE,OAAjB,CAAlB;AACD,KAFD;AAGD,GAJD,EAIG,EAJH;AAKA,SAAO,CAACO,iBAAD,EAAoBH,kBAApB,CAAP;AACD,CAtCD","sourcesContent":["import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n  var cacheElementRef = useRef(); // Cache callback\n\n  var callbackRef = useRef(callback);\n  callbackRef.current = callback; // Internal motion event handler\n\n  var onInternalMotionEnd = React.useCallback(function (event) {\n    callbackRef.current(event);\n  }, []); // Remove events\n\n  function removeMotionEvents(element) {\n    if (element) {\n      element.removeEventListener(transitionEndName, onInternalMotionEnd);\n      element.removeEventListener(animationEndName, onInternalMotionEnd);\n    }\n  } // Patch events\n\n\n  function patchMotionEvents(element) {\n    if (cacheElementRef.current && cacheElementRef.current !== element) {\n      removeMotionEvents(cacheElementRef.current);\n    }\n\n    if (element && element !== cacheElementRef.current) {\n      element.addEventListener(transitionEndName, onInternalMotionEnd);\n      element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n      cacheElementRef.current = element;\n    }\n  } // Clean up when removed\n\n\n  React.useEffect(function () {\n    return function () {\n      removeMotionEvents(cacheElementRef.current);\n    };\n  }, []);\n  return [patchMotionEvents, removeMotionEvents];\n});"]},"metadata":{},"sourceType":"module"}