commit bff8e3077b0020074ed2c0787a5afd42c2b6e56d
parent 519a424eb10613eedd80322d2da390c45837a4a5
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Mon, 16 May 2022 22:50:28 +0200
Add hash state parameter to show elevation profile
Diffstat:
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/App.js b/src/App.js
@@ -204,6 +204,23 @@ function setUp() { // eslint-disable-line complexity
}
startInfo.tracksAfterLoadFromStorage = trackNames();
+ if (hashState.hasKey('autoprofile') && hasTrackParamsInHash) {
+ tracklist.once('loadedTracksFromParam', () => {
+ const track = tracklist.tracks()[0];
+ if (track) {
+ tracklist.showElevationProfileForTrack(track);
+ }
+ });
+ }
+
+ // This is not quite correct: minimizeControls should have effect only during loading, but the way it is
+ // implemented, it will affect expanding when loading track from hash param during session.
+ // But as parameter is expected to be found only when site is embedded using iframe,
+ // the latter scenario is not very probable.
+ if (minimizeControls.tracks !== minimizeStateMinimized) {
+ tracklist.on('loadedTracksFromParam', () => tracklist.setExpanded());
+ }
+
for (let param of tracksHashParams) {
bindHashStateReadOnly(param, tracklist.loadTrackFromParam.bind(tracklist, param));
}
diff --git a/src/lib/leaflet.control.track-list/track-list.hash-state.js b/src/lib/leaflet.control.track-list/track-list.hash-state.js
@@ -15,7 +15,7 @@ L.Control.TrackList.include({
const notEmpty = this.addTracksFromGeodataArray(geodata);
this.readingFiles(this.readingFiles() - 1);
if (notEmpty) {
- this.setExpanded();
+ this.fire('loadedTracksFromParam');
}
},
}