koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 1.47 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("react"),F=require("../hooks/useEventListener.cjs"),T=require("../hooks/useIsFirstRender.cjs"),E=require("../hooks/useSafeLayoutEffect.cjs"),b=({show:r=!1,children:S,exitClassName:a="transition-exit",exitDoneClassName:l="transition-exit-done",enterClassName:o="transition-enter",enterDoneClassName:L="transition-enter-done",nodeRef:e,unmountNode:p,onExit:y=()=>{},onEnter:f=()=>{}})=>{const q=T.useIsFirstRender(),[u,d]=x.useState(r);E.useSafeLayoutEffect(()=>{r&&d(r)},[r]);const t=x.useMemo(()=>({enter:o.split(" "),exit:a.split(" "),exitDone:l.split(" "),enterDone:L.split(" ")}),[o,L,a,l]);E.useSafeLayoutEffect(()=>{var s,i,n,c,v,m;r?((s=e.current)==null||s.classList.add(...t.enter),(i=e.current)==null||i.classList.remove(...t.exit),(n=e.current)==null||n.classList.remove(...t.exitDone)):((c=e.current)==null||c.classList.add(...t.exit),(v=e.current)==null||v.classList.remove(...t.enter),(m=e.current)==null||m.classList.remove(...t.enterDone))},[t,e,r,u,q]);const D=()=>{var s,i,n,c;r&&u?(f(),(s=e.current)==null||s.classList.remove(...t.enter),(i=e.current)==null||i.classList.add(...t.enterDone)):u&&(y(),(n=e.current)==null||n.classList.remove(...t.exit),(c=e.current)==null||c.classList.add(...t.exitDone),d(!1))};return F.useEventListener("animationend",D,e.current),(u||!p)&&S};exports.Transition=b;
//# sourceMappingURL=Transition.cjs.map