From fca63fb1037381c916702f5f708d83070ac6fee2 Mon Sep 17 00:00:00 2001 From: MarcoJayUsai Date: Wed, 26 Mar 2025 15:21:17 +0100 Subject: [PATCH] feature(drawings): Navpoints settings saved in session data --- frontend/react/src/interfaces.ts | 1 + frontend/react/src/map/drawings/drawingsmanager.ts | 4 +++- frontend/react/src/sessiondata.ts | 6 ++++-- frontend/react/src/ui/panels/drawingmenu.tsx | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/react/src/interfaces.ts b/frontend/react/src/interfaces.ts index 5240e25f..407ca7e6 100644 --- a/frontend/react/src/interfaces.ts +++ b/frontend/react/src/interfaces.ts @@ -60,6 +60,7 @@ export interface SessionData { hotgroups?: { [key: string]: number[] }; starredSpawns?: { [key: number]: SpawnRequestTable }; drawings?: { [key: string]: { visibility: boolean; opacity: number; name: string; guid: string; containers: any; drawings: any } }; + navpoints?: { [key: string]: { visibility: boolean; opacity: number; name: string; guid: string; containers: any; drawings: any } }; } export interface ProfileOptions { diff --git a/frontend/react/src/map/drawings/drawingsmanager.ts b/frontend/react/src/map/drawings/drawingsmanager.ts index d5790e0e..4de83577 100644 --- a/frontend/react/src/map/drawings/drawingsmanager.ts +++ b/frontend/react/src/map/drawings/drawingsmanager.ts @@ -703,6 +703,7 @@ export class DrawingsManager { #navpointsContainer: DCSDrawingsContainer; #updateEventRequested: boolean = false; #sessionDataDrawings = {}; + #sessionDataNavpoints = {}; #initialized: boolean = false; constructor() { @@ -717,9 +718,10 @@ export class DrawingsManager { SessionDataLoadedEvent.on((sessionData) => { this.#sessionDataDrawings = sessionData.drawings ?? {}; + this.#sessionDataNavpoints = sessionData.navpoints ?? {}; if (this.#initialized) { if (this.#sessionDataDrawings["Mission drawings"]) this.#drawingsContainer.fromJSON(this.#sessionDataDrawings["Mission drawings"]); - if (this.#sessionDataDrawings["Navpoints"]) this.#navpointsContainer.fromJSON(this.#sessionDataDrawings["Navpoints"]); + if (this.#sessionDataNavpoints["Navpoints"]) this.#navpointsContainer.fromJSON(this.#sessionDataNavpoints["Navpoints"]); } this.#drawingsContainer.setVisibility(getApp().getMap().getOptions().showMissionDrawings); }); diff --git a/frontend/react/src/sessiondata.ts b/frontend/react/src/sessiondata.ts index 33301fb4..4eadc9e0 100644 --- a/frontend/react/src/sessiondata.ts +++ b/frontend/react/src/sessiondata.ts @@ -134,8 +134,10 @@ export class SessionDataManager { }); DrawingsUpdatedEvent.on(() => { - let container = getApp().getDrawingsManager().getDrawingsContainer(); - this.#sessionData.drawings = {"Mission drawings": container.toJSON()}; + let mainDrawingsContainer = getApp().getDrawingsManager().getDrawingsContainer(); + let navpointsContainer = getApp().getDrawingsManager().getNavpointsContainer(); + this.#sessionData.drawings = {"Mission drawings": mainDrawingsContainer.toJSON()}; + this.#sessionData.navpoints = {"Navpoints": navpointsContainer.toJSON()}; this.#saveSessionData(); }); }, 200); diff --git a/frontend/react/src/ui/panels/drawingmenu.tsx b/frontend/react/src/ui/panels/drawingmenu.tsx index ca1e3f12..b9a6a7e1 100644 --- a/frontend/react/src/ui/panels/drawingmenu.tsx +++ b/frontend/react/src/ui/panels/drawingmenu.tsx @@ -308,7 +308,7 @@ export function DrawingMenu(props: { open: boolean; onClose: () => void }) { Navpoints - setSearchString(search)} text={searchString || ""}> + {/* setSearchString(search)} text={searchString || ""}> */}
{navpointsContainer.container && renderDrawingsContainerControls(navpointsContainer.container)}