@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 2.71 kB
JavaScript
;const x=require("./tslib.es6-BW4cJBUu.js"),e=require("react"),s=require("classnames"),d=require("./utils-C9NL3q0j.js"),R=require("./index-Bsb1LHpi.js"),W=require("./random-id-DlJj_RWH.js"),P=require("./button-Cylml1aK.js"),U=require("./icon-M7M42naA.js"),$=require("./icon-button-BeoRawG2.js"),g=require("./menu-item-CjPH_7Bi.js");require("./dropdown-B-M6HUau.js");const A=require("./icons/ebay-icon-overflow-horizontal-24/index.js"),G=require("./floating-ui-BLTkNeJp.js"),J=o=>{var{a11yText:r,noToggleIcon:c,fixWidth:M,reverse:b,variant:f,strategy:q,expanded:B=!1,className:w,icon:N,onCollapse:h=()=>{},onExpand:O=()=>{},onMouseDown:F=()=>{},onSelect:S=()=>{},text:E="",children:u}=o,j=x.__rest(o,["a11yText","noToggleIcon","fixWidth","reverse","variant","strategy","expanded","className","icon","onCollapse","onExpand","onMouseDown","onSelect","text","children"]);const[a,l]=e.useState(B),[y,C]=e.useState(),p=N||d.findComponent(u,U.EbayIcon),T=d.findComponent(u,k)||(p?e.createElement("span",null,E):E),D=d.filterByType(u,[_,I]),{overlayStyles:L,refs:i}=G.useFloatingDropdown({open:a,options:{reverse:b,strategy:q}}),m=i.host;e.useEffect(()=>{const t=n=>{m.current&&!m.current.contains(n.currentTarget)&&l(!1)};return a?(O(),setTimeout(()=>{document.addEventListener("click",t,!1)})):a===!1&&h(),()=>document.removeEventListener("click",t,!1)},[a]),e.useEffect(()=>{C(W.randomId())},[]);const H=t=>{R.handleEscapeKeydown(t,()=>{var n;l(!1),(n=m.current)===null||n===void 0||n.focus()})},K=s("fake-menu-button__menu",{"menu-button__menu--fix-width":M,"menu-button__menu--reverse":b}),v=Object.assign(Object.assign({ref:i.setHost},j),{className:"fake-menu-button__button","aria-expanded":!!a,"aria-label":r,"aria-controls":y,onClick:()=>l(!a)});return e.createElement("span",{className:s("fake-menu-button",w)},f==="overflow"?e.createElement($.EbayIconButton,Object.assign({icon:e.createElement(A.EbayIconOverflowHorizontal24,null)},v)):e.createElement(P.EbayButton,Object.assign({variant:f==="form"?"form":void 0,bodyState:c?void 0:"expand"},v),p,T),a&&e.createElement(g.EbayFakeMenu,{ref:i.setOverlay,className:K,id:y,tabIndex:-1,onKeyDown:H,onSelect:S,style:L},D.map((t,n)=>e.cloneElement(t,Object.assign(Object.assign({},t.props),{onMouseDown:z=>{F(z,{index:n})},className:s(t.props.className,"fake-menu-button__item"),key:n,autoFocus:n===0})))))},_=g.EbayMenuItem,I=o=>{var{className:r}=o,c=x.__rest(o,["className"]);return e.createElement("hr",Object.assign({},c,{className:s(r,"menu-button__separator")}))},k=({children:o})=>e.createElement(e.Fragment,null,o);exports.EbayFakeMenuButtonItem=_;exports.EbayFakeMenuButtonLabel=k;exports.EbayMenuButton=J;exports.EbayMenuButtonSeparator=I;