@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 1.9 kB
JavaScript
import{jsx as s,jsxs as S}from"react/jsx-runtime";import"./SpeakersFiltersModal.scss";import{observer as b}from"mobx-react-lite";import{useMemo as c}from"react";import{t as r}from"../utils/i18n";import{ModalContainer as k}from"./";import d from"./MultiSelectGroupsContainer";const T=b(({store:e,visibleSections:m,open:i,onClose:u})=>{const n=e.state.filters,l=c(()=>{const o=e.rootStore.speakerStore.companies;return o.length?[{groupName:"Companies",items:o.map(t=>({id:t,name:t,countProvider:()=>e.rootStore.speakerStore.getSpeakersByCompany(t).length})),showGroupActions:!0,fullWidth:!0}]:[]},[e.rootStore.speakerStore.companies]),a=c(()=>{const o=e.rootStore.speakerStore.jobTitles;return o.length?[{groupName:"Job Titles",items:o.map(t=>({id:t,name:t,countProvider:()=>e.rootStore.speakerStore.getSpeakersByJobTitle(t).length})),showGroupActions:!0,fullWidth:!0}]:[]},[e.rootStore.speakerStore.jobTitles]),g=o=>{const t=o;e.setPending("selectedCompanies",t)},h=o=>{const t=o;e.setPending("selectedJobTitles",t)},f=i!==void 0?i:e.state.isOpen,C=u||(()=>e.closeFilter()),p=m||e.state.visibleSections;return s(k,{open:f,title:r("Speaker Filters"),maxWidth:800,footerLeft:[{label:r("Clear all"),variant:"gray",disabled:n.selectedCompanies.pending.length===0&&n.selectedJobTitles.pending.length===0,onClick:()=>{e.resetFilters()}}],footerRight:[{label:r("Apply"),variant:"primary",onClick:()=>{e.applyFilters()}}],onClose:C,children:S("div",{className:"efp-speakers-filters-modal",children:[p.includes("companies")&&l.length>0&&s("div",{className:"efp-speakers-filters-modal__section",children:s(d,{groups:l,selectedIds:n.selectedCompanies.pending,onChange:g,showItemCounts:!0})}),p.includes("jobTitles")&&a.length>0&&s("div",{className:"efp-speakers-filters-modal__section",children:s(d,{groups:a,selectedIds:n.selectedJobTitles.pending,onChange:h,showItemCounts:!0})})]})})});export default T;