feat(map): session data is now saving selected map source

This commit is contained in:
MarcoJayUsai
2025-03-29 11:33:01 +01:00
parent 0452a8081b
commit c1aadece29
5 changed files with 25 additions and 6 deletions

View File

@@ -61,6 +61,7 @@ export interface SessionData {
starredSpawns?: { [key: number]: SpawnRequestTable }; starredSpawns?: { [key: number]: SpawnRequestTable };
drawings?: { [key: string]: { visibility: boolean; opacity: number; name: string; guid: string; containers: any; drawings: any } }; 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 } }; navpoints?: { [key: string]: { visibility: boolean; opacity: number; name: string; guid: string; containers: any; drawings: any } };
mapSource?: { id: string };
} }
export interface ProfileOptions { export interface ProfileOptions {

View File

@@ -310,6 +310,12 @@ export class Map extends L.Map {
this.#starredSpawnRequestTables = localSessionData.starredSpawns; this.#starredSpawnRequestTables = localSessionData.starredSpawns;
StarredSpawnsChangedEvent.dispatch(this.#starredSpawnRequestTables); StarredSpawnsChangedEvent.dispatch(this.#starredSpawnRequestTables);
} }
setTimeout(() => {
if (sessionData.mapSource?.id) {
this.setLayerName(sessionData.mapSource.id);
}
}, 500);
}); });
window.addEventListener("blur", () => { window.addEventListener("blur", () => {
@@ -1014,7 +1020,7 @@ export class Map extends L.Map {
} }
} }
#onMouseWheelPressed(e: any) {} #onMouseWheelPressed(e: any) { }
#onRightMousePressed(e: any) { #onRightMousePressed(e: any) {
this.dragging.disable(); this.dragging.disable();

View File

@@ -10,6 +10,7 @@ import {
CoalitionAreasChangedEvent, CoalitionAreasChangedEvent,
DrawingsUpdatedEvent, DrawingsUpdatedEvent,
HotgroupsChangedEvent, HotgroupsChangedEvent,
MapSourceChangedEvent,
SessionDataChangedEvent, SessionDataChangedEvent,
SessionDataLoadedEvent, SessionDataLoadedEvent,
SessionDataSavedEvent, SessionDataSavedEvent,
@@ -136,8 +137,13 @@ export class SessionDataManager {
DrawingsUpdatedEvent.on(() => { DrawingsUpdatedEvent.on(() => {
let mainDrawingsContainer = getApp().getDrawingsManager().getDrawingsContainer(); let mainDrawingsContainer = getApp().getDrawingsManager().getDrawingsContainer();
let navpointsContainer = getApp().getDrawingsManager().getNavpointsContainer(); let navpointsContainer = getApp().getDrawingsManager().getNavpointsContainer();
this.#sessionData.drawings = {"Mission drawings": mainDrawingsContainer.toJSON()}; this.#sessionData.drawings = { "Mission drawings": mainDrawingsContainer.toJSON() };
this.#sessionData.navpoints = {"Navpoints": navpointsContainer.toJSON()}; this.#sessionData.navpoints = { "Navpoints": navpointsContainer.toJSON() };
this.#saveSessionData();
});
MapSourceChangedEvent.on((source) => {
this.#sessionData.mapSource = { id: source };
this.#saveSessionData(); this.#saveSessionData();
}); });
}, 200); }, 200);

View File

@@ -25,6 +25,7 @@ import {
MapOptionsChangedEvent, MapOptionsChangedEvent,
MapSourceChangedEvent, MapSourceChangedEvent,
SessionDataChangedEvent, SessionDataChangedEvent,
SessionDataLoadedEvent,
SessionDataSavedEvent, SessionDataSavedEvent,
} from "../../events"; } from "../../events";
import { import {
@@ -65,7 +66,9 @@ export function Header() {
MapOptionsChangedEvent.on((mapOptions) => { MapOptionsChangedEvent.on((mapOptions) => {
setMapOptions({ ...mapOptions }); setMapOptions({ ...mapOptions });
}); });
MapSourceChangedEvent.on((source) => setMapSource(source)); MapSourceChangedEvent.on((source) => {
setMapSource(source);
});
ConfigLoadedEvent.on((config: OlympusConfig) => { ConfigLoadedEvent.on((config: OlympusConfig) => {
// Timeout needed to make sure the map configuration has updated // Timeout needed to make sure the map configuration has updated
window.setTimeout(() => { window.setTimeout(() => {
@@ -79,6 +82,9 @@ export function Header() {
}); });
SessionDataChangedEvent.on(() => setSavingSessionData(true)); SessionDataChangedEvent.on(() => setSavingSessionData(true));
SessionDataSavedEvent.on(() => setSavingSessionData(false)); SessionDataSavedEvent.on(() => setSavingSessionData(false));
SessionDataLoadedEvent.on((sessionData) => {
sessionData.mapSource && setMapSource(sessionData.mapSource.id);
})
EnabledCommandModesChangedEvent.on((enabledCommandModes) => setEnabledCommandModes(enabledCommandModes)); EnabledCommandModesChangedEvent.on((enabledCommandModes) => setEnabledCommandModes(enabledCommandModes));
AudioManagerStateChangedEvent.on((state) => setAudioState(state as AudioManagerState)); AudioManagerStateChangedEvent.on((state) => setAudioState(state as AudioManagerState));

View File

@@ -157,7 +157,7 @@ export function MapToolBar(props: {}) {
<> <>
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1">
<OlStateButton <OlStateButton
key={"select"} key={"zoomin"}
checked={false} checked={false}
icon={faPlus} icon={faPlus}
tooltip={() => <div>Zoom map in</div>} tooltip={() => <div>Zoom map in</div>}
@@ -167,7 +167,7 @@ export function MapToolBar(props: {}) {
}} }}
/> />
<OlStateButton <OlStateButton
key={"select"} key={"zoomout"}
checked={false} checked={false}
icon={faMinus} icon={faMinus}
tooltip={() => <div>Zoom map out</div>} tooltip={() => <div>Zoom map out</div>}