@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 2.38 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("../tslib.es6-BW4cJBUu.js"),n=require("react"),y=require("classnames"),B=require("../dropdown-B-M6HUau.js"),o=require("../filter-menu-Det4WRjD.js"),T=require("../utils-C9NL3q0j.js"),I=require("../icons/ebay-icon-chevron-down-12/index.js"),O=require("../floating-ui-BLTkNeJp.js"),A=c=>{var{className:f,text:E,countText:i,selected:a,a11yFilterAppliedText:F="Filter Applied","aria-label":h,onExpand:v,onCollapse:_,onChange:r,children:m}=c,l=D.__rest(c,["className","text","countText","selected","a11yFilterAppliedText","aria-label","onExpand","onCollapse","onChange","children"]);const d=n.useRef(null),C=T.filterByType(m,o.EbayFilterMenuItem),[M,x]=n.useState(()=>C.filter(t=>t.props.checked).map(t=>t.props.value)),p=a??M.length>0,{isExpanded:g,collapse:s}=B.useExpander({ref:d,options:{hostSelector:".filter-menu-button__button",contentSelector:".filter-menu-button__menu",focusManagement:"interactive",expandOnClick:!0,autoCollapse:!0,alwaysDoFocusManagement:!0},onExpand:v,onCollapse:_}),{overlayStyles:k,refs:b}=O.useFloatingDropdown({open:g}),N=t=>{var e;(e=l.onKeyDown)===null||e===void 0||e.call(l,t),t.key==="Escape"&&s()},S=(...t)=>{var e;(e=l.onFormSubmit)===null||e===void 0||e.call(l,...t),s()},q=(...t)=>{var e;(e=l.onFooterClick)===null||e===void 0||e.call(l,...t),s()},w=(t,e)=>{var u;r?.(t,e),x((u=e.checked)!==null&&u!==void 0?u:[])};return n.createElement("span",{ref:d,className:y("filter-menu-button",f)},n.createElement("button",{type:"button",className:y("filter-menu-button__button",p&&"filter-menu-button__button--selected"),ref:b.setHost,"aria-expanded":"false","aria-haspopup":"true","aria-label":h},n.createElement("span",{className:"filter-menu-button__button-cell"},n.createElement("span",{className:"filter-menu-button__button-text"},E,i&&n.createElement(n.Fragment,null," ",n.createElement("span",{className:"filter-menu-button__count"},i))),n.createElement(I.EbayIconChevronDown12,null)),p&&n.createElement("span",{className:"clipped"},F)),n.createElement(o.EbayFilterMenu,Object.assign({},l,{onChange:w,classPrefix:"filter-menu-button",onKeyDown:N,onFooterClick:q,onFormSubmit:S,ref:b.setOverlay,style:k}),m))};exports.EbayFilterMenuFooterButton=o.EbayFilterMenuFooterButton;exports.EbayFilterMenuItem=o.EbayFilterMenuItem;exports.EbayFilterMenuButton=A;