react-lottie-loader
Version:
Lottie loader for React
2 lines (1 loc) • 992 B
JavaScript
import t from"lottie-web";import r,{forwardRef as n,useRef as e,useEffect as a,useImperativeHandle as i}from"react";function o(){return o=Object.assign?Object.assign.bind():function(t){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}return t},o.apply(this,arguments)}var u=["className","style"],l=n(function(n,l){var c=n.className,s=n.style,f=function(t,r){if(null==t)return{};var n,e,a={},i=Object.keys(t);for(e=0;e<i.length;e++)r.indexOf(n=i[e])>=0||(a[n]=t[n]);return a}(n,u),m=e(null),y=e();return a(function(){if(m.current){var r=t.loadAnimation(o({},f,{container:m.current}));return y.current=o({},t,{animationItem:r}),function(){var t,r,n;null==(t=y.current)||t.destroy(),null==(r=y.current)||null==(n=r.animationItem)||n.destroy()}}},[f.animationData]),i(l,function(){return y.current},[y.current]),r.createElement("div",{ref:m,className:c||"",style:s})});l.displayName="LottieLoader";export{l as default};