1 line
1.7 KiB
Plaintext
1 line
1.7 KiB
Plaintext
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { useEffect, useState } from \"react\"\nimport { useEventListener } from \"@chakra-ui/react-use-event-listener\"\nimport { getOwnerWindow } from \"@chakra-ui/dom-utils\"\nexport type UseAnimationStateProps = {\n isOpen: boolean\n ref: React.RefObject<HTMLElement>\n}\n\nexport function useAnimationState(props: UseAnimationStateProps) {\n const { isOpen, ref } = props\n\n const [mounted, setMounted] = useState(isOpen)\n const [once, setOnce] = useState(false)\n\n useEffect(() => {\n if (!once) {\n setMounted(isOpen)\n setOnce(true)\n }\n }, [isOpen, once, mounted])\n\n useEventListener(\n () => ref.current,\n \"animationend\",\n () => {\n setMounted(isOpen)\n },\n )\n\n const hidden = isOpen ? false : !mounted\n\n return {\n present: !hidden,\n onComplete() {\n const win = getOwnerWindow(ref.current)\n const evt = new win.CustomEvent(\"animationend\", { bubbles: true })\n ref.current?.dispatchEvent(evt)\n },\n }\n}\n"],"mappings":";;;AAAA,SAAS,WAAW,gBAAgB;AACpC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAMxB,SAAS,kBAAkB,OAA+B;AAC/D,QAAM,EAAE,QAAQ,IAAI,IAAI;AAExB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,MAAM;AAC7C,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAEtC,YAAU,MAAM;AACd,QAAI,CAAC,MAAM;AACT,iBAAW,MAAM;AACjB,cAAQ,IAAI;AAAA,IACd;AAAA,EACF,GAAG,CAAC,QAAQ,MAAM,OAAO,CAAC;AAE1B;AAAA,IACE,MAAM,IAAI;AAAA,IACV;AAAA,IACA,MAAM;AACJ,iBAAW,MAAM;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,SAAS,SAAS,QAAQ,CAAC;AAEjC,SAAO;AAAA,IACL,SAAS,CAAC;AAAA,IACV,aAAa;AAjCjB;AAkCM,YAAM,MAAM,eAAe,IAAI,OAAO;AACtC,YAAM,MAAM,IAAI,IAAI,YAAY,gBAAgB,EAAE,SAAS,KAAK,CAAC;AACjE,gBAAI,YAAJ,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AACF;","names":[]} |