UNPKG

react-tiny-slider

Version:
3 lines (2 loc) 1.6 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 u}from"react-dom/server";function c(){return c=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},c.apply(this,arguments)}var d=r(function(r,d){var l=t(null),a=t(null),f=t(!1),s=r.onClick,v=r.onIndexChanged,h=r.onTransitionStart,m=r.onTransitionEnd,p=r.onTouchStart,g=r.onTouchMove,y=r.onTouchEnd,T=r.onInit,C=r.children,x=o(function(n){if(!f.current&&s){if(!l.current)return s(null,null,n);var r=l.current.getInfo();s(r.index,r,n)}},[s]),I=o(function(){var n,r=null==(n=l.current)?void 0:n.events;r&&(r.on("dragMove",function(n){f.current=!0,h&&h(n)}),r.on("dragEnd",function(n){f.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(function(){d.current=l.current})},[h,m,v,p,g,y,T]),b=o(function(n){var r;void 0===n&&(n={});var t=c({},n,{onInit:function(){setTimeout(I)},container:null==(r=a.current)||null==(r=r.firstChild)?void 0:r.firstChild});l.current=i(t)},[I,C]);e(function(){return b(r),function(){l.current&&l.current.destroy&&l.current.destroy()}},[r,C]);var j=u(n("div",{children:n("div",{children:C})}));return n("div",{onClick:x,ref:a,dangerouslySetInnerHTML:{__html:j}})});export{d as TinySlider}; //# sourceMappingURL=react-tiny-slider.mjs.map