UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) 1.93 kB
import{jsx as o,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 i}from"../utils/i18n";import{Modal as k,MultiSelectGroups as d}from"./";const v=b(({store:e,visibleSections:m,open:r,onClose:u})=>{const n=e.state.filters,l=c(()=>{const s=e.rootStore.speakerStore.companies;return s.length?[{groupName:"Companies",items:s.map(t=>({id:t,name:t,countProvider:()=>e.rootStore.speakerStore.getSpeakersByCompany(t).length})),showGroupActions:!0,fullWidth:!0}]:[]},[e.rootStore.speakerStore.companies]),a=c(()=>{const s=e.rootStore.speakerStore.jobTitles;return s.length?[{groupName:"Job Titles",items:s.map(t=>({id:t,name:t,countProvider:()=>e.rootStore.speakerStore.getSpeakersByJobTitle(t).length})),showGroupActions:!0,fullWidth:!0}]:[]},[e.rootStore.speakerStore.jobTitles]),g=s=>{const t=s;e.setPending("selectedCompanies",t)},h=s=>{const t=s;e.setPending("selectedJobTitles",t)},f=r!==void 0?r:e.state.isOpen,C=u||(()=>e.closeFilter()),p=m||e.state.visibleSections;return o(k,{open:f,title:i("Speaker Filters"),badge:e.activeFiltersCount>0?e.activeFiltersCount:void 0,maxWidth:800,footerLeft:[{label:i("Clear all"),variant:"gray",disabled:n.selectedCompanies.pending.length===0&&n.selectedJobTitles.pending.length===0,onClick:()=>{e.resetFilters()}}],footerRight:[{label:i("Apply"),variant:"primary",onClick:()=>{e.applyFilters()}}],onClickClose:C,children:S("div",{className:"efp-speakers-filters-modal",children:[p.includes("companies")&&l.length>0&&o("div",{className:"efp-speakers-filters-modal__section",children:o(d,{groups:l,selectedIds:n.selectedCompanies.pending,onChange:g,showItemCounts:!0})}),p.includes("jobTitles")&&a.length>0&&o("div",{className:"efp-speakers-filters-modal__section",children:o(d,{groups:a,selectedIds:n.selectedJobTitles.pending,onChange:h,showItemCounts:!0})})]})})});export default v;