| | |
| | | const mapRef = React.useRef(); |
| | | const contentRef = React.useRef(); |
| | | |
| | | const [model, setModel] = React.useState(() => MapModel.OBSERVER_MODEL); |
| | | const [model, setModel] = React.useState(null); |
| | | const [deviceVisible, setDeviceVisible] = React.useState(false); |
| | | const [settingsVisible, setSettingsVisible] = React.useState(false); |
| | | const [windowSize, setWindowSize] = React.useState({ |
| | |
| | | const [didClickSprite, setDidClickSprite] = React.useState(false); |
| | | const [spriteBySettings, setSpriteBySettings] = React.useState(null); |
| | | const prevSpriteBySettingsRef = React.useRef(); |
| | | const [curSprite, setCurSPrite] = React.useState(null); |
| | | const [drawerVisible, setDrawerVisible] = React.useState(false); |
| | | const [dataFetched, setDataFetched] = React.useState(false); |
| | | const [curSprite, setCurSPrite] = React.useState(null); |
| | | const prevCurSpriteRef = React.useRef(); |
| | | |
| | | // init func |
| | | React.useEffect(async () => { |
| | |
| | | }); |
| | | }; |
| | | window.addEventListener('resize', handleResize); |
| | | |
| | | await Utils.fetchMapData(intl); |
| | | setDataFetched(true); |
| | | setModel(MapModel.OBSERVER_MODEL) |
| | | setTimeout(() => { |
| | | player.adaptScreen(); |
| | | }, 200) |
| | |
| | | |
| | | // model |
| | | React.useEffect(() => { |
| | | if (!mapContainer) { |
| | | if (!mapContainer && !dataFetched) { |
| | | return; |
| | | } |
| | | |
| | | switch (model) { |
| | | case MapModel.OBSERVER_MODEL: |
| | | |
| | | |
| | | player.hideGridlines(); |
| | | player.hideStarryBackground(); |
| | | |
| | |
| | | Utils.removeSelectedEffect(); |
| | | setDeviceVisible(false); |
| | | setSettingsVisible(false); |
| | | |
| | | mapContainer.children.forEach(child => { |
| | | child.off('pointerup'); |
| | | child.off('pointermove'); |
| | | child.off('pointerdown'); |
| | | child.off('click'); |
| | | }) |
| | | |
| | | |
| | | mapContainer.children.forEach(child => { |
| | | Utils.viewFeature(child, setCurSPrite); |
| | | }) |
| | |
| | | } |
| | | |
| | | React.useEffect(() => { |
| | | prevCurSpriteRef.current = curSprite; |
| | | |
| | | if (curSprite && prevCurSprite !== curSprite) { |
| | | Utils.removeSelectedEffect(); |
| | | } |
| | | |
| | | if (curSprite) { |
| | | if (model === MapModel.OBSERVER_MODEL) { |
| | | Utils.showSelectedEffect(curSprite) |
| | | setDrawerVisible(true) |
| | | } |
| | | } else { |
| | | Utils.removeSelectedEffect(); |
| | | } |
| | | }, [curSprite]); |
| | | const prevCurSprite = prevCurSpriteRef.current; |
| | | |
| | | return ( |
| | | <> |
| | |
| | | |
| | | <MapDrawer |
| | | open={drawerVisible} |
| | | curSprite={curSprite} |
| | | refCurr={mapRef.current} |
| | | onCancel={() => { |
| | | setCurSPrite(null); |