| | |
| | | useTheme, |
| | | Fab, |
| | | } from '@mui/material'; |
| | | import { MAP_MODE, MAP_DEFAULT_ROTATION } from "./constants"; |
| | | import { MAP_MODE, MAP_DEFAULT_ROTATION, setMapPreferences } from "./constants"; |
| | | import Player from './player'; |
| | | import * as Tool from './tool'; |
| | | import { NotificationProvider, useNotification } from './Notification'; |
| | |
| | | }); |
| | | |
| | | const handleResize = () => { |
| | | if (!contentRef) { return; } |
| | | if (!contentRef.current || !player) { |
| | | return; |
| | | } |
| | | const width = contentRef.current.offsetWidth; |
| | | const height = contentRef.current.offsetHeight; |
| | | player.resize(width, height); |
| | |
| | | Tool.setThemeMode(themeMode); |
| | | Http.setNotify(notify); |
| | | Http.setMapContainer(player.mapContainer); |
| | | await Http.fetchMapPreferences(curZone, setMapPreferences); |
| | | websocket = new WebSocketClient('/ws/map/websocket'); |
| | | |
| | | await Http.fetchMapData(curZone, setRcsStatus, setCurSprite); |
| | |
| | | }, [sidebarOpen]); |
| | | |
| | | useEffect(() => { |
| | | if (!player) { |
| | | return; |
| | | } |
| | | player.setTheme(themeMode); |
| | | Tool.setThemeMode(themeMode); |
| | | }, [themeMode]) |
| | |
| | | if (!mapContainer) { |
| | | return; |
| | | } |
| | | setAreaListVisible(false); |
| | | Tool.removeSelectedEffect(); |
| | | if (curSprite) { |
| | | if (mode === MAP_MODE.OBSERVER_MODE) { |
| | |
| | | {translate('page.map.action.areaList')} |
| | | </Button> |
| | | <Button |
| | | variant={areaDrawing ? "outlined" : "contained"} |
| | | color="primary" |
| | | sx={{}} |
| | | disabled={areaDrawing} |
| | | variant="contained" |
| | | color={areaDrawing ? "error" : "primary"} |
| | | onClick={() => { |
| | | if (areaDrawing) { |
| | | Tool.cancelAreaDrawing(); |
| | | setAreaDrawing(false); |
| | | return; |
| | | } |
| | | setCurSprite(null); |
| | | const started = Tool.startAreaDrawing({ |
| | | promptText: translate('page.map.area.prompt.nameInput'), |
| | |
| | | } |
| | | }} |
| | | > |
| | | {translate('page.map.action.addArea')} |
| | | {areaDrawing |
| | | ? translate('page.map.action.cancelAddArea') |
| | | : translate('page.map.action.addArea')} |
| | | </Button> |
| | | </> |
| | | )} |
| | |
| | | zoneId={curZone} |
| | | open={areaListVisible} |
| | | onClose={() => setAreaListVisible(false)} |
| | | width={400} |
| | | setCurSprite={setCurSprite} |
| | | width={378} |
| | | /> |
| | | |
| | | </Box> |