react-progressive-image
Version:
Progressive image loading for React
1 lines • 4.03 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactProgressiveImage=t(require("react")):e.ReactProgressiveImage=t(e.React)}(window,function(r){return function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=1)}([function(e,t){e.exports=r},function(e,t,r){"use strict";r.r(t),r.d(t,"default",function(){return n});var i=r(0);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var n=function(e){function o(e){var n,t,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),t=this,r=c(o).call(this,e),l(f(f(n=!r||"object"!==a(r)&&"function"!=typeof r?f(t):r)),"image",void 0),l(f(f(n)),"loadImage",function(e,t){n.image&&(n.image.onload=null,n.image.onerror=null);var r=new Image;(n.image=r).onload=n.onLoad,r.onerror=n.onError,r.src=e,t&&(r.srcset=t.srcSet,r.sizes=t.sizes)}),l(f(f(n)),"onLoad",function(){n.props.delay?n.setImageWithDelay():n.setImage()}),l(f(f(n)),"setImageWithDelay",function(){setTimeout(function(){n.setImage()},n.props.delay)}),l(f(f(n)),"setImage",function(){n.setState({image:n.image.src,loading:!1,srcSetData:{srcSet:n.image.srcset||"",sizes:n.image.sizes||""}})}),l(f(f(n)),"onError",function(e){var t=n.props.onError;t&&t(e)}),n.state={image:e.placeholder,loading:!0,srcSetData:{srcSet:"",sizes:""}},n}var t,r,n;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(o,i["Component"]),t=o,(r=[{key:"componentDidMount",value:function(){var e=this.props,t=e.src,r=e.srcSetData;this.loadImage(t,r)}},{key:"componentDidUpdate",value:function(e){var t=this,r=this.props,n=r.src,o=r.placeholder,i=r.srcSetData;n!==e.src&&this.setState({image:o,loading:!0},function(){t.loadImage(n,i)})}},{key:"componentWillUnmount",value:function(){this.image&&(this.image.onload=null,this.image.onerror=null)}},{key:"render",value:function(){var e=this.state,t=e.image,r=e.loading,n=e.srcSetData,o=this.props.children;if(!o||"function"!=typeof o)throw new Error("ProgressiveImage requires a function as its only child");return o(t,r,n)}}])&&u(t.prototype,r),n&&u(t,n),o}()}])});