UNPKG

react-tiny-slider

Version:
3 lines (2 loc) 1.52 kB
import{jsx as n}from"react/jsx-runtime";import{forwardRef as r,useRef as t,useCallback as o,useEffect as e}from"react";import{tns as i}from"tiny-slider";import"tiny-slider/dist/tiny-slider.css";import{renderToStaticMarkup as c}from"react-dom/server";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o])}return n},u.apply(this,arguments)}const d=r((r,d)=>{const l=t(null),s=t(null),a=t(!1),{onClick:h,onIndexChanged:v,onTransitionStart:f,onTransitionEnd:m,onTouchStart:p,onTouchMove:g,onTouchEnd:y,onInit:T,children:C}=r,x=o(n=>{if(a.current||!h)return;if(!l.current)return h(null,null,n);const r=l.current.getInfo();h(r.index,r,n)},[h]),I=o(()=>{var n;const r=null==(n=l.current)?void 0:n.events;r&&(r.on("dragMove",n=>{a.current=!0,f&&f(n)}),r.on("dragEnd",n=>{a.current=!1,m&&m(n)}),v&&r.on("indexChanged",v),p&&r.on("touchStart",p),g&&r.on("touchMove",g),y&&r.on("touchEnd",y)),T&&T(),setTimeout(()=>{d.current=l.current})},[f,m,v,p,g,y,T]),b=o((n={})=>{var r;const t=u({},n,{onInit:()=>{setTimeout(I)},container:null==(r=s.current)||null==(r=r.firstChild)?void 0:r.firstChild});l.current=i(t)},[I,C]);e(()=>(b(r),()=>{l.current&&l.current.destroy&&l.current.destroy()}),[r,C]);const j=c(n("div",{children:n("div",{children:C})}));return n("div",{onClick:x,ref:s,dangerouslySetInnerHTML:{__html:j}})});export{d as TinySlider}; //# sourceMappingURL=react-tiny-slider.modern.mjs.map