UNPKG

@ebay/ui-core-react

Version:

Skin components build off React

2 lines (1 loc) 1.29 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("../tslib.es6-C4EgNkz1.js"),r=require("react"),E=require("classnames"),y=require("../icon-CR8ApQBy.js"),C=require("../utils-C9NL3q0j.js"),u=["teal","light-teal","green","lime","yellow","orange","magenta","pink"];function q(e,o){if(o)return o;let n=0,t,a;if(e&&e.length>0)for(a=0;a<e.length;a++)t=e.charCodeAt(a),n=(n<<5)-n+t,n|=0;const g=u.length,m=Math.abs(n)%g;return u[m]}const v=e=>r.createElement("img",Object.assign({},e));function d(e){return e&&(e<3/4||e<4/3)}const I=e=>{var{size:o,color:n,username:t,children:a,className:g,knownAspectRatio:m}=e,h=A.__rest(e,["size","color","username","children","className","knownAspectRatio"]);const[b,f]=r.useState(d(m)?"fit":"cover"),s=C.findComponent(a,v),p=l=>{const c=l.target,i=c.naturalWidth/c.naturalHeight;f(d(i)?"fit":"cover")};return r.createElement("div",Object.assign({},h,{role:"img",className:E("avatar",g,o&&`avatar--${o}`,b==="fit"&&"avatar--fit",t&&!s&&`avatar--${q(t,n)}`)}),r.Children.count(a)>0?s&&r.cloneElement(s,{onLoad(l){var c,i;(i=(c=s.props).onLoad)===null||i===void 0||i.call(c,l),p(l)}})||a:t?.charAt(0).toUpperCase()||r.createElement(y.EbayIcon,{name:"avatarSignedOut"}))};exports.EbayAvatar=I;exports.EbayAvatarImage=v;