@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 2.6 kB
JavaScript
import{jsx as r}from"react/jsx-runtime";import l from"dateformat";import{observer as h}from"mobx-react-lite";import f from"../data";import b,{boothStore as y,uiState as n}from"../store";import{BoothBase as g}from"../store/BoothStore";import{Category as v}from"../store/CategoryStore";import{EventItem as x}from"../store/EventStore";import{Exhibitor as p}from"../store/ExhibitorStore";import{HeatmapYah as k}from"../store/HeatmapStore";import{SpeakerItem as I}from"../store/SpeakerStore";import S from"../utils/useHeatmapData";import i from"./EntityItemContainer";import{defaultRebookingOptions as C}from"./RebookingRadioGroup";import D from"./YahRow";const N=({item:o,index:m,current:d,compactDetails:u,onClick:s})=>{let c={background:void 0,clicks:void 0};n.heatmap&&(o instanceof p||o instanceof g||o instanceof k)&&(c=S(o));const a=n.foundInDescriptionStruct[o.id];if(o instanceof p){const t="exhibitor";return r(i,{onClick:e=>s(t,e),id:o.id.toString(),featured:o.featured,kind:t,image:o.logo,title:o.name,bookmarked:o.bookmarked,visited:o.visited,additionalInfo:o.booths.map(e=>({type:"location",locationName:e.name,level:e.layer&&(f.shortLevelName?e.layer.shortName:e.layer.description)||""})),current:d,compactDetails:u,heatmapColor:c.background,accentBorderColor:f.isRebooking?C[o.rebookingState]?.color.primary:void 0,hideUserState:n.kiosk,secondaryText:a})}if("rect"in o)return r(i,{onClick:t=>s("booth",t),id:o.id.toString(),kind:"booth",title:o.name,icon:o.poiIcon,bookmarked:o.bookmarked,current:d,heatmapColor:c.background,secondaryText:a});if(o instanceof v)return r(i,{onClick:t=>s("category",t),id:o.id.toString(),itemsCount:o.exhibitors.length,kind:"category",title:o.name,current:d,secondaryText:a});if(o instanceof I){const t=[];return o.jobTitle&&t.push({type:"text",text:o.jobTitle}),r(i,{id:o.id.toString(),kind:"speaker",title:o.name,subtitle:o.company,image:o.photoFile,additionalInfo:t,bookmarked:o.bookmarked,onClick:()=>b.selectSpeaker(o,!0),secondaryText:a},o.id)}if(o instanceof x){const t=o.boothId?y.booths.find(e=>e.id===o.boothId):null;return r(i,{id:o.id.toString(),onClick:e=>s("event",e),kind:"event",title:o.name,date:l(o.startDate,"dd mmm ddd"),time:`${l(o.startDate,"h:MM")} - ${l(o.endDate,"h:MM")}`,additionalInfo:t?[{type:"location",locationName:t.name,level:f.shortLevelName?t.layer?.shortName:t.layer?.description}]:[],bookmarked:o.bookmarked,visited:o.visited,current:d,hideUserState:n.kiosk,secondaryText:a})}if(o instanceof k){const t=`list-row ${m===n.activeListIndex?"active":""}`;return r(D,{yah:o,className:t})}return null};export default h(N);