UNPKG

react-tiny-slider

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