From 0ef5de51c4a13504cae0400b1d9de0e01f220c8e Mon Sep 17 00:00:00 2001 From: Davide Passoni Date: Wed, 19 Mar 2025 17:39:59 +0100 Subject: [PATCH] fix: Drawings visibility not aligned with map option --- frontend/react/src/map/drawings/drawingsmanager.ts | 2 ++ frontend/react/src/ui/panels/drawingmenu.tsx | 7 ++++++- frontend/react/src/ui/panels/header.tsx | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/frontend/react/src/map/drawings/drawingsmanager.ts b/frontend/react/src/map/drawings/drawingsmanager.ts index af74ffce..7c823bfa 100644 --- a/frontend/react/src/map/drawings/drawingsmanager.ts +++ b/frontend/react/src/map/drawings/drawingsmanager.ts @@ -719,6 +719,7 @@ export class DrawingsManager { SessionDataLoadedEvent.on((sessionData) => { this.#sessionDataDrawings = sessionData.drawings ?? {}; if (this.#initialized) if (this.#sessionDataDrawings["Mission drawings"]) this.#drawingsContainer.fromJSON(this.#sessionDataDrawings["Mission drawings"]); + this.#drawingsContainer.setVisibility(getApp().getMap().getOptions().showMissionDrawings); }); } @@ -727,6 +728,7 @@ export class DrawingsManager { this.#drawingsContainer.initFromData(data.drawings); if (data.drawings.navpoints) this.#drawingsContainer.initNavpoints(data.drawings.navpoints); if (this.#sessionDataDrawings["Mission drawings"]) this.#drawingsContainer.fromJSON(this.#sessionDataDrawings["Mission drawings"]); + this.#drawingsContainer.setVisibility(getApp().getMap().getOptions().showMissionDrawings); DrawingsInitEvent.dispatch(this.#drawingsContainer); this.#initialized = true; return true; diff --git a/frontend/react/src/ui/panels/drawingmenu.tsx b/frontend/react/src/ui/panels/drawingmenu.tsx index 56e1737a..a410cded 100644 --- a/frontend/react/src/ui/panels/drawingmenu.tsx +++ b/frontend/react/src/ui/panels/drawingmenu.tsx @@ -92,7 +92,12 @@ export function DrawingMenu(props: { open: boolean; onClose: () => void }) { hover:scale-125 hover:text-gray-200 `} onClick={() => { - container.setVisibility(!container.getVisibility(), true); + + if (container === mainDrawingsContainer.container) { + getApp().getMap().setOption("showMissionDrawings", !getApp().getMap().getOptions().showMissionDrawings); + } else { + container.setVisibility(!container.getVisibility(), true); + } }} />
{ HiddenTypesChangedEvent.on((hiddenTypes) => setMapHiddenTypes({ ...hiddenTypes })); - MapOptionsChangedEvent.on((mapOptions) => setMapOptions({ ...mapOptions })); + MapOptionsChangedEvent.on((mapOptions) => { + setMapOptions({ ...mapOptions }) + }); MapSourceChangedEvent.on((source) => setMapSource(source)); ConfigLoadedEvent.on((config: OlympusConfig) => { // Timeout needed to make sure the map configuration has updated