| | |
| | | const prevCurSpriteRef = React.useRef(); |
| | | |
| | | // init func |
| | | React.useEffect(async () => { |
| | | player = new Player(mapRef.current, styles.dark, didClickSprite); |
| | | setApp(player.app); |
| | | setMapContainer(player.mapContainer); |
| | | Utils.syncApp(player.app); |
| | | Utils.syncMapContainer(player.mapContainer); |
| | | React.useEffect(() => { |
| | | const initialize = async () => { |
| | | player = new Player(mapRef.current, styles.dark, didClickSprite); |
| | | setApp(player.app); |
| | | setMapContainer(player.mapContainer); |
| | | Utils.syncApp(player.app); |
| | | Utils.syncMapContainer(player.mapContainer); |
| | | |
| | | const handleResize = () => { |
| | | setWindowSize({ |
| | | width: window.innerWidth, |
| | | height: window.innerHeight, |
| | | }); |
| | | }; |
| | | window.addEventListener('resize', handleResize); |
| | | await Utils.fetchMapData(intl); |
| | | setDataFetched(true); |
| | | setModel(MapModel.OBSERVER_MODEL) |
| | | setTimeout(() => { |
| | | player.adaptScreen(); |
| | | }, 200) |
| | | const handleResize = () => { |
| | | setWindowSize({ |
| | | width: window.innerWidth, |
| | | height: window.innerHeight, |
| | | }); |
| | | }; |
| | | window.addEventListener('resize', handleResize); |
| | | await Utils.fetchMapData(intl); |
| | | setDataFetched(true); |
| | | setModel(MapModel.OBSERVER_MODEL) |
| | | setTimeout(() => { |
| | | player.adaptScreen(); |
| | | }, 200) |
| | | } |
| | | initialize(); |
| | | }, []); |
| | | |
| | | // resize |
| | |
| | | const height = contentRef.current.offsetHeight; |
| | | app.renderer.resize(width, height); |
| | | if (model !== MapModel.OBSERVER_MODEL) { |
| | | player.hideGridlines(); |
| | | player.showGridlines(); |
| | | } |
| | | }, [app, mapContainer, windowSize]) |
| | |
| | | if (!mapContainer && !dataFetched) { |
| | | return; |
| | | } |
| | | |
| | | switch (model) { |
| | | case MapModel.OBSERVER_MODEL: |
| | | |
| | |
| | | player.activateMapEvent(null); |
| | | |
| | | Utils.removeSelectedEffect(); |
| | | setCurSPrite(null); |
| | | setDeviceVisible(false); |
| | | setSettingsVisible(false); |
| | | |
| | |
| | | <Button |
| | | className='map-header-button' |
| | | size={'large'} |
| | | onClick={() => { |
| | | Utils.fetchMapData(intl); |
| | | onClick={async () => { |
| | | await Utils.fetchMapData(intl); |
| | | |
| | | player.hideGridlines(); |
| | | player.hideStarryBackground(); |
| | | |
| | | player.activateMapEvent(null); |
| | | |
| | | Utils.removeSelectedEffect(); |
| | | setCurSPrite(null); |
| | | setDeviceVisible(false); |
| | | setSettingsVisible(false); |
| | | setDrawerVisible(false); |
| | | |
| | | mapContainer.children.forEach(child => { |
| | | Utils.viewFeature(child, setCurSPrite); |
| | | }) |
| | | |
| | | }} |
| | | > |
| | | <FormattedMessage id='map.load' defaultMessage='加载地图' /> |