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