@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 1.99 kB
JavaScript
import{Fragment as w,jsx as e,jsxs as i}from"react/jsx-runtime";import"./ViewerMenuPanel.scss";import{observer as N}from"mobx-react-lite";import m from"react";import a from"../data";import l,{uiState as x}from"../store";import{isEventNow as S,msUntilEventNowChanges as T}from"../utils/event-now.js";import{t as o}from"../utils/i18n";import{Button as c}from"./";const D=2**31-1;function E(n){if(!n)return{venue:"",dateRange:""};const t=n.split(" | ");return{venue:t[0]?.trim()||"",dateRange:t[1]?.trim()||""}}function b(n,t){const[,d]=m.useReducer(r=>r+1,0);return m.useEffect(()=>{const r=T(n,t);if(r===null)return;const u=setTimeout(d,Math.min(r,D));return()=>clearTimeout(u)}),S(n,t)}const M=N(()=>{const{venue:n,dateRange:t}=E(a.subtitle),r=!(!!a.startDate&&!!a.endDate),u=b(a.startDate,a.endDate),v=l.eventStore.eventItems.length>0,p=l.toursStore.hasTours;function h(s){s.preventDefault(),x.menu=!1}function f(s){s.preventDefault(),l.selectExhibitors()}function _(s){s.preventDefault(),l.selectSessions()}function g(s){s.preventDefault(),l.selectTours()}return i("div",{className:"viewer-panel",children:[i("div",{className:"viewer-panel__info",children:[e("div",{className:"viewer-panel__title",children:a.title}),i("div",{className:"viewer-panel__row",children:[e("i",{className:"viewer-panel__icon icon-schedule"}),r?e("span",{children:o("Ongoing")}):i("div",{className:"viewer-panel__date-range",children:[t,u&&i(w,{children:["\xA0\xA0",e("div",{className:"viewer-panel__now-badge",children:o("Now")})]})]})]}),n&&i("div",{className:"viewer-panel__row",children:[e("i",{className:"viewer-panel__icon icon-marker-pin"}),e("span",{children:n})]})]}),i("div",{className:"viewer-panel__buttons",children:[e(c,{variant:"gray",size:"lg",text:o("Map"),onClick:h}),e(c,{variant:"gray",size:"lg",text:o("Exhibitors"),onClick:f}),v&&e(c,{variant:"gray",size:"lg",text:o("Sessions"),onClick:_}),p&&e(c,{variant:"gray",size:"lg",text:o("Guided Tours"),onClick:g})]})]})});export default M;