nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 211da689ee420c3077a270c168e31b887d236ebf
parent f28d3f9538135291ecd82f3a10da7eb9e56c40cb
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Mon,  5 Mar 2018 00:26:10 +0300

[hashState] changed processing of steate chage event

Diffstat:
Msrc/lib/leaflet.hashState/hashState.js | 5+++++
Msrc/lib/leaflet.hashState/leaflet.hashState.js | 18++++--------------
2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/src/lib/leaflet.hashState/hashState.js b/src/lib/leaflet.hashState/hashState.js @@ -81,11 +81,16 @@ const hashState = { } } } + this._ignoreChanges = true; location.hash = stateItems.join('&'); + this._ignoreChanges = false; }, onHashChanged: function() { + if (this._ignoreChanges) { + return; + } const newState = this._parseHash(); const changedKeys = {}; for (let key of Object.keys(newState)) { diff --git a/src/lib/leaflet.hashState/leaflet.hashState.js b/src/lib/leaflet.hashState/leaflet.hashState.js @@ -1,5 +1,5 @@ import L from 'leaflet'; -import hashState from './hashState'; +import {hashState} from './hashState'; import logging from 'lib/logging'; L.Mixin.HashState = { @@ -20,33 +20,24 @@ L.Mixin.HashState = { // initialize control state from hash const state = hashState.getState(key) || defaultInitialState; - this._ignoreStateChange = true; - if (!this.unserializeState(state) && !this.unserializeState(defaultInitialState)) { // state from hash is invalid, update hash from default state - hashState.updateState(key, this.serializeState()); + if (!state || !this.unserializeState(state)) { + this.unserializeState(defaultInitialState) } hashState.updateState(this._hashStateKey, this.serializeState()); - this._ignoreStateChange = false; - return this; }, _onControlStateChanged: function() { - if (this._ignoreStateChange) { - return; - } const state = this.serializeState(); hashState.updateState(this._hashStateKey, state); }, _onExternalStateChanged: function(state) { - this._ignoreStateChange = true; if (!this.unserializeState(state)) { // state from hash is invalid, update hash from component state logging.captureMessageWithUrl(`Invalid state in hash string (key "${this._hashStateKey}")`); hashState.updateState(this._hashStateKey, this.serializeState()); } - this._ignoreStateChange = false; } - // TODO: disableHashState -}; -\ No newline at end of file +};