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