UNPKG

@ebay/ui-core-react

Version:

Skin components build off React

3 lines (2 loc) 1.22 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("../tslib.es6-BW4cJBUu.js"),N=require("classnames"),o=require("react"),g=require("../ebay-details-O8sqphtP.js"),R=require("../utils-C9NL3q0j.js"),S=s=>{var{size:b,autoCollapse:f,className:E,children:m,onToggle:a,"aria-roledescription":p="accordion"}=s,v=_.__rest(s,["size","autoCollapse","className","children","onToggle","aria-roledescription"]);const c=o.useRef(null),[h,q]=o.useState(!1),n=R.filterByType(m,g.EbayDetails);if(!n.length)throw new Error(`EbayAccordion: Please use a EbayDetails that defines the sections of the accordion`);const T=n.map((e,d)=>o.cloneElement(e,{onToggle:(u,{open:i})=>{var r,y,t;if(q(!0),f&&i){const l=(r=c.current)===null||r===void 0?void 0:r.querySelectorAll("details");l?.forEach((A,D)=>{D!==d&&(A.open=!1)})}(t=(y=e.props).onToggle)===null||t===void 0||t.call(y,u,{open:i}),a?.(u,{open:i,index:d})}}));return o.createElement("ul",Object.assign({},v,{ref:c,className:N("accordion",E,{"accordion--large":b==="large","accordion--animated":h}),"aria-roledescription":p}),T.map(e=>o.createElement("li",{key:e.key},e)))};exports.EbayDetails=g.EbayDetails;exports.EbayAccordion=S;