@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 1.01 kB
JavaScript
import{autorun as s}from"mobx";import k from"../../data";import a from"../../tools/logger";import{getStorage as r,saveStorage as n}from"../../utils/entity-storage";import{EventItem as m}from"../EventStore";export default function p(t){k.events?.forEach(e=>{const o=(e.speakers||[]).map(d=>t.speakerStore.addSpeaker({...d})),i=new m(e.id,e.externalId||e.id.toString(),e.boothId,e.name||`Event ${e.id}`,e.description||"",e.startDate,e.endDate,e.logoFile,o,e.tracks||[]);t.eventStore.eventItems.push(i)}),a.log("initEvents",t.eventStore.eventItems.length),a.log("initSpeakers",t.speakerStore.speakersMap.size),c(t.eventStore),v(t.eventStore)}function v(t){const e=r("visited");t.replaceVisited(e.events),s(()=>{const o=r("visited");n("visited",{exhibitors:o.exhibitors,events:t.visited.map(i=>i.id)})})}function c(t){const e=r("bookmarked");t.replaceBookmarked(e.events),s(()=>{const o=r("bookmarked");n("bookmarked",{exhibitors:o.exhibitors,events:t.bookmarked?.map(i=>i.id),speakers:o.speakers,booths:o.booths})})}