UNPKG

@green-id/meexr-badge

Version:

Ce package permet d'intégrer un badge de notation environnementale dans vos projets React.

2 lines (1 loc) 4.3 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MeexrBadge={},e.React)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(t);function o(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function l(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((r=r.apply(e,t||[])).next())}))}function a(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(c){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}"function"==typeof SuppressedError&&SuppressedError;var i=function(e){return e<25?"#E5726B":e<50?"#F6A673":e<75?"#A19FE2":"#68A17E"};e.MeexrBadge=function(e){var n,l=e.siteUrl,c=void 0===l?window.location.href:l,s=t.useState(null),u=s[0],f=s[1],d=t.useState(!0),p=d[0],m=d[1];return t.useEffect((function(){o(void 0,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:m(!0),r.label=1;case 1:return r.trys.push([1,4,5,6]),e="https://api.meexr.fr/audits/badge-audit?brand=societech&nbVisits=1&website=".concat(encodeURIComponent(c)),[4,fetch(e)];case 2:return[4,r.sent().json()];case 3:return t=r.sent(),f(t),[3,6];case 4:return n=r.sent(),console.error("Request failed:",n),[3,6];case 5:return m(!1),[7];case 6:return[2]}}))}))}),[c]),p?r.default.createElement("div",{style:{backgroundColor:"#F4F4F4",width:"fit-content",border:"2px solid black",padding:"1.5rem"}},"Loading..."):u?r.default.createElement("div",{style:{backgroundColor:"#F4F4F4",width:"fit-content",border:"2px solid black"}},r.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:"1.5rem",alignItems:"center"}},r.default.createElement("h4",{style:{fontSize:"14px",margin:0,marginBottom:"10px",fontWeight:"normal"}},"Cette page émet"),r.default.createElement("h4",{style:{fontSize:"18px",fontWeight:"bold",margin:0}},u.co2.toFixed(2)," g de CO2e par visite")),r.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:"1.5rem",borderTop:"2px solid black",alignItems:"center"}},r.default.createElement("h4",{style:{fontSize:"0.875rem",margin:0,fontWeight:"normal"}},"Le score Meexr du site est"),r.default.createElement("div",{style:{display:"flex",flexDirection:"row",marginTop:"8px"}},r.default.createElement("img",{src:(n=u.score,n<25?"/assets/score_d.svg":n<50?"/assets/score_c.svg":n<75?"/assets/score_b.svg":"/assets/score_a.svg"),alt:"",style:{margin:0,height:"30px",width:"30px"}}),r.default.createElement("h2",{style:{fontSize:"30px",margin:0,marginTop:"auto",marginRight:"8px",fontWeight:"bold",paddingLeft:"8px",color:i(u.score)}},function(e){return e<25?"D":e<50?"C":e<75?"B":"A"}(u.score)),r.default.createElement("h1",{style:{fontWeight:"bold",margin:0,marginTop:"auto",fontSize:"22px",marginBottom:"2px",color:i(u.score)}},u.score),r.default.createElement("h1",{style:{fontSize:"13px",margin:0,marginTop:"auto",fontWeight:"normal",marginBottom:"6px",color:i(u.score)}},"/100pts")))):r.default.createElement("div",null,"No data available")},Object.defineProperty(e,"__esModule",{value:!0})}));