| | |
| | | const [mapContainer, setMapContainer] = useState(null); |
| | | |
| | | const [mode, setMode] = useState(MAP_MODE.OBSERVER_MODE); |
| | | const [dataFetched, setDataFetched] = useState(false); |
| | | const [insightVisible, setInsightVisible] = useState(false); |
| | | const [deviceVisible, setDeviceVisible] = useState(false); |
| | | const [settingsVisible, setSettingsVisible] = useState(false); |
| | |
| | | websocket.onMessage = (wsMsg) => { |
| | | Tool.generateDynamicGraphic(curZone, JSON.parse(wsMsg)); |
| | | } |
| | | |
| | | setDataFetched(true); |
| | | setTimeout(() => { |
| | | player.adaptScreen(); |
| | | notify.info(translate('page.map.welcome')); |
| | |
| | | <MapSearch |
| | | mode={mode} |
| | | setMode={setMode} |
| | | dataFetched={dataFetched} |
| | | curZone={curZone} |
| | | setSpriteSettings={setSpriteSettings} |
| | | /> |
| | |
| | | const { |
| | | mode, |
| | | setMode, |
| | | dataFetched, |
| | | curZone, |
| | | setCurSprite, |
| | | setSpriteSettings, |
| | |
| | | }; |
| | | |
| | | useEffect(() => { |
| | | if (!Tool.getMapContainer()) return; |
| | | setTimeout(() => { |
| | | if (dataFetched) { |
| | | resetSearch(); |
| | | }, 200); |
| | | }, [curDeviceType, curZone]); |
| | | } |
| | | }, [curDeviceType, dataFetched, curZone]); |
| | | |
| | | useEffect(() => { |
| | | if (!Tool.getMapContainer()) return; |
| | |
| | | onInputChange={(event, newInputValue) => { |
| | | setInputValue(newInputValue); |
| | | }} |
| | | disableClearable |
| | | /> |
| | | </Stack> |
| | | ); |
| | |
| | | if (sprite) { |
| | | setCopyVisible(false); |
| | | reset({ |
| | | x: sprite.position.x, |
| | | y: sprite.position.y, |
| | | scaleX: sprite.scale.x, |
| | | scaleY: sprite.scale.y, |
| | | rotation: (sprite.rotation * 180) / Math.PI, |
| | | x: sprite?.position.x, |
| | | y: sprite?.position.y, |
| | | scaleX: sprite?.scale.x, |
| | | scaleY: sprite?.scale.y, |
| | | rotation: (sprite?.rotation * 180) / Math.PI, |
| | | }); |
| | | } |
| | | }, [sprite, reset]); |