| | |
| | | const [dataFetched, setDataFetched] = React.useState(false); |
| | | const [curSprite, setCurSPrite] = React.useState(null); |
| | | const prevCurSpriteRef = React.useRef(); |
| | | const hasFloor = true; |
| | | // const [hasFloor, setHasFloor] = React.useState(true); |
| | | const [curFloor, setCurFloor] = React.useState(1); |
| | | const [floorList, setFloorList] = React.useState([]); |
| | | const [curFloor, setCurFloor] = React.useState(() => { |
| | | const storedValue = localStorage.getItem('curFloor'); |
| | | return storedValue !== null ? JSON.parse(storedValue) : null; |
| | | }); |
| | | const [batchSprites, setBatchSprites] = React.useState([]); |
| | | const [batchDrawerVisible, setBatchDrawerVisible] = React.useState(false); |
| | | |
| | |
| | | }; |
| | | window.addEventListener('resize', handleResize); |
| | | |
| | | await Utils.fetchMapData(curFloor); |
| | | const mapFloorData = await Utils.fetchMapFloor(); |
| | | setFloorList(mapFloorData); |
| | | let defaultFloor = curFloor || mapFloorData?.[0]?.value; |
| | | setCurFloor(defaultFloor); |
| | | await Utils.fetchMapData(defaultFloor); |
| | | setDataFetched(true); |
| | | setModel(MapModel.OBSERVER_MODEL) |
| | | setTimeout(() => { |
| | |
| | | setDrawerVisible(false); |
| | | setSpriteBySettings(null); |
| | | setSettingsVisible(false); |
| | | setBatchSprites([]); |
| | | setBatchDrawerVisible(false); |
| | | |
| | | switch (model) { |
| | | case MapModel.OBSERVER_MODEL: |
| | |
| | | return; |
| | | } |
| | | switchFloor(curFloor); |
| | | localStorage.setItem('curFloor', JSON.stringify(curFloor)); |
| | | }, [curFloor]); |
| | | |
| | | // watch spriteBySettings |
| | |
| | | }, [spriteBySettings]) |
| | | const prevSpriteBySettings = prevSpriteBySettingsRef.current; |
| | | |
| | | // watch batchSprites |
| | | React.useEffect(() => { |
| | | if (!mapContainer) { |
| | | return; |
| | | } |
| | | if (batchSprites?.length > 0) { |
| | | setBatchDrawerVisible(true) |
| | | } else { |
| | | player.clearSelectedSprites(); |
| | | setBatchDrawerVisible(false) |
| | | } |
| | | }, [batchSprites]) |
| | |
| | | model={model} |
| | | setModel={setModel} |
| | | ModelEnum={MapModel} |
| | | curFloor={curFloor} |
| | | curSprite={curSprite} |
| | | setCurSPrite={setCurSPrite} |
| | | setSpriteBySettings={setSpriteBySettings} |
| | |
| | | <Content ref={contentRef} className={styles.content}> |
| | | <div ref={mapRef} /> |
| | | |
| | | {hasFloor && ( |
| | | {floorList.length > 0 && ( |
| | | <MapFloor |
| | | floorList={floorList} |
| | | curFloor={curFloor} |
| | | setCurFloor={setCurFloor} |
| | | /> |
| | |
| | | <MapDrawer |
| | | open={drawerVisible} |
| | | curSprite={curSprite} |
| | | curFloor={curFloor} |
| | | refCurr={mapRef.current} |
| | | onCancel={() => { |
| | | setCurSPrite(null); |
| | |
| | | open={batchDrawerVisible} |
| | | batchSprites={batchSprites} |
| | | refCurr={mapRef.current} |
| | | model={model} |
| | | ModelEnum={MapModel} |
| | | onCancel={() => { |
| | | setBatchSprites(null); |
| | | setBatchSprites([]); |
| | | setBatchDrawerVisible(false); |
| | | }} |
| | | /> |