react-img-fallbacks
Version:
React image fallback component
1 lines • 6.6 kB
JavaScript
!function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-img-fallback"]=e(require("react")):r["react-img-fallback"]=e(r.React)}(this,(function(r){return(()=>{var e={543:(r,e,t)=>{"use strict";t.d(e,{default:()=>d});var n=t(383),o=t.n(n),a=t(697),u=t.n(a);function c(){return(c=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function i(r,e){var t;if("undefined"==typeof Symbol||null==r[Symbol.iterator]){if(Array.isArray(r)||(t=s(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,u=!0,c=!1;return{s:function(){t=r[Symbol.iterator]()},n:function(){var r=t.next();return u=r.done,r},e:function(r){c=!0,a=r},f:function(){try{u||null==t.return||t.return()}finally{if(c)throw a}}}}function f(r,e,t,n,o,a,u){try{var c=r[a](u),i=c.value}catch(r){return void t(r)}c.done?e(i):Promise.resolve(i).then(n,o)}function s(r,e){if(r){if("string"==typeof r)return l(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?l(r,e):void 0}}function l(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}var p={src:u().oneOfType([u().arrayOf(u().string),u().string]).isRequired,initSrc:u().string,timeout:u().number,onLoad:u().func,onError:u().func,rest:u().any},y=function(r){var e,t,a=r.onLoad,u=r.onError,l=r.src,p=r.initSrc,y=r.timeout,d=void 0===y?0:y,b=function(r,e){if(null==r)return{};var t,n,o=function(r,e){if(null==r)return{};var t,n,o={},a=Object.keys(r);for(n=0;n<a.length;n++)t=a[n],e.indexOf(t)>=0||(o[t]=r[t]);return o}(r,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(r);for(n=0;n<a.length;n++)t=a[n],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(r,t)&&(o[t]=r[t])}return o}(r,["onLoad","onError","src","initSrc","timeout"]),m=(e=(0,n.useState)(d?"":p||l instanceof Array&&l[0]||l||""),t=2,function(r){if(Array.isArray(r))return r}(e)||function(r,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(r)){var t=[],n=!0,o=!1,a=void 0;try{for(var u,c=r[Symbol.iterator]();!(n=(u=c.next()).done)&&(t.push(u.value),!e||t.length!==e);n=!0);}catch(r){o=!0,a=r}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return t}}(e,t)||s(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=m[0],h=m[1],g=(0,n.useRef)(),O=(0,n.useRef)(),w=(0,n.useRef)([]),x=(0,n.useRef)((function(){}));(0,n.useEffect)((function(){x.current=a||function(){}}),[a]);var k=(0,n.useRef)((function(){}));(0,n.useEffect)((function(){k.current=u||function(){}}),[u]);var E=function(r,e,t){""===e||w.current.includes(e)||(k.current({event:r,url:e,error:t}),w.current.push(e))};(0,n.useEffect)((function(){d&&setTimeout((function(){O.current||(h(p),x.current({url:p,isInit:!0,isFallback:!0}),O.current=!0)}),d)}),[d,O]);var S=(0,n.useCallback)((function(r){return new Promise((function(e,t){g.current.onload=function(r){return e(r)},g.current.onerror=function(r){return t(r)},g.current.src=r}))}),[g]);return(0,n.useEffect)((function(){if(O.current=!1,!(l&&null!=l&&l.length||p))return E(new Event("error"),null,new Error("Component expect at least one src element or initSrc")),function(){};var r,e=l instanceof Array?l:l?[l]:[];g.current=new Image,(r=regeneratorRuntime.mark((function r(){var t,n,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:t=i(e),r.prev=1,o=regeneratorRuntime.mark((function r(){var e;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e=n.value,r.prev=1,r.next=4,S(e);case 4:return h((function(r){return r!==e&&(O.current=!0,x.current({url:e,isInit:e===p,isFallback:l.indexOf(e)})),e})),r.abrupt("return","break");case 8:r.prev=8,r.t0=r.catch(1),E(r.t0,e,new Error("Image fallback from src collection with '".concat(e,"' can't be loaded")));case 11:case"end":return r.stop()}}),r,null,[[1,8]])})),t.s();case 4:if((n=t.n()).done){r.next=11;break}return r.delegateYield(o(),"t0",6);case 6:if("break"!==r.t0){r.next=9;break}return r.abrupt("break",11);case 9:r.next=4;break;case 11:r.next=16;break;case 13:r.prev=13,r.t1=r.catch(1),t.e(r.t1);case 16:return r.prev=16,t.f(),r.finish(16);case 19:case"end":return r.stop()}}),r,null,[[1,13,16,19]])})),function(){var e=this,t=arguments;return new Promise((function(n,o){var a=r.apply(e,t);function u(r){f(a,n,o,u,c,"next",r)}function c(r){f(a,n,o,u,c,"throw",r)}u(void 0)}))})()}),[g,l,p,S,k,x]),o().createElement("img",c({src:v,onError:function(r){return E(r,v,new Error("Image with '".concat(v,"' can't be loaded")))},onLoad:function(){O.current||(x.current({url:v,isInit:v===p,isFallback:v===p||l instanceof Array&&l.indexOf(v)||0}),O.current=!0)}},b))};y.propTypes=p;const d=y},703:(r,e,t)=>{"use strict";var n=t(414);function o(){}function a(){}a.resetWarningCache=o,r.exports=function(){function r(r,e,t,o,a,u){if(u!==n){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function e(){return r}r.isRequired=r;var t={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:e,element:r,elementType:r,instanceOf:e,node:r,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:a,resetWarningCache:o};return t.PropTypes=t,t}},697:(r,e,t)=>{r.exports=t(703)()},414:r=>{"use strict";r.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},383:e=>{"use strict";e.exports=r}},t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}return n.n=r=>{var e=r&&r.__esModule?()=>r.default:()=>r;return n.d(e,{a:e}),e},n.d=(r,e)=>{for(var t in e)n.o(e,t)&&!n.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})},n.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),n(543)})().default}));