import React, { useState, useEffect } from 'react' import './ui.css' import { EventsProvider } from '../eventscontext' import { StateProvider } from '../statecontext' import { Header } from './panels/header' import { SpawnMenu } from './panels/spawnmenu' import { UnitControlMenu } from './panels/unitcontrolmenu' import { MainMenu } from './panels/mainmenu' import { SideBar } from './panels/sidebar'; import { MapHiddenTypes, MapOptions } from '../types/types' import { MAP_HIDDEN_TYPES_DEFAULTS, MAP_OPTIONS_DEFAULTS } from '../constants/constants' import { getApp, setupApp } from '../olympusapp' export type OlympusState = { mainMenuVisible: boolean, spawnMenuVisible: boolean, unitControlMenuVisible: boolean, measureMenuVisible: boolean, drawingMenuVisible: boolean, mapHiddenTypes: MapHiddenTypes; mapOptions: MapOptions; } export function UI() { var [mainMenuVisible, setMainMenuVisible] = useState(false); var [spawnMenuVisible, setSpawnMenuVisible] = useState(false); var [unitControlMenuVisible, setUnitControlMenuVisible] = useState(false); var [measureMenuVisible, setMeasureMenuVisible] = useState(false); var [drawingMenuVisible, setDrawingMenuVisible] = useState(false); var [mapHiddenTypes, setMapHiddenTypes] = useState(MAP_HIDDEN_TYPES_DEFAULTS); var [mapOptions, setMapOptions] = useState(MAP_OPTIONS_DEFAULTS); document.addEventListener("hiddenTypesChanged", (ev) => { setMapHiddenTypes({ ...getApp().getMap().getHiddenTypes() }); }) document.addEventListener("mapOptionsChanged", (ev) => { setMapOptions({ ...getApp().getMap().getOptions() }); }) function hideAllMenus() { setMainMenuVisible(false); setSpawnMenuVisible(false); setUnitControlMenuVisible(false); setMeasureMenuVisible(false); setDrawingMenuVisible(false); } return (