@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 1.63 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../tslib.es6-BW4cJBUu.js"),j=require("classnames"),e=require("react"),A=require("../icons/ebay-icon-chevron-down-12/index.js"),D=u=>{var{children:h,selected:p,defaultSelected:x=!1,expanded:f,defaultExpanded:b=!1,variant:a="default",icon:E,image:C,a11ySelectedText:S="Filter Applied",href:v,className:_,onClick:i,disabled:c}=u,y=T.__rest(u,["children","selected","defaultSelected","expanded","defaultExpanded","variant","icon","image","a11ySelectedText","href","className","onClick","disabled"]);const[N,g]=e.useState(x),[k,q]=e.useState(b),m=e.useRef(null),s=p!==void 0?p:N,r=f!==void 0?f:k,l=a==="menu",n=!!v&&!l;e.useLayoutEffect(()=>{var d,t;(t=(d=m.current)===null||d===void 0?void 0:d.classList)===null||t===void 0||t.add("filter-chip--animated")},[]);const w=d=>{if(!c){let t=r,o=s;l?(t=!r,q(t)):(o=!s,g(o)),i?.(d,{expanded:t,selected:o})}},F=j("filter-chip",{"filter-chip--expressive":a==="expressive","filter-chip--selected":(n||l)&&s},_),R=n?"a":"button";return e.createElement(R,Object.assign({},y,{ref:m,className:F,onClick:w,href:c?void 0:v,type:n?void 0:"button","aria-pressed":!n&&!l?s?"true":"false":void 0,"aria-expanded":l?r?"true":"false":void 0,disabled:n?void 0:c}),a==="expressive"?e.createElement("span",{className:"filter-chip__media"},C):null,a==="default"?E:null,e.createElement("span",{className:"filter-chip__text"},h,s&&(n||l)?e.createElement("span",{className:"clipped"},"- ",S):null),a==="menu"?e.createElement(A.EbayIconChevronDown12,{className:"filter-chip__trailing"}):null)};exports.EbayFilterChip=D;