hasher.changed.* to hasher.*

This commit is contained in:
djmaze 2021-08-13 10:01:01 +02:00
parent d536b5eeee
commit 5f21fcc100
3 changed files with 12 additions and 16 deletions

View file

@ -303,7 +303,7 @@ export function startScreens(screensClasses) {
const cross = new Crossroads(); const cross = new Crossroads();
cross.addRoute(/^([a-zA-Z0-9-]*)\/?(.*)$/, screenOnRoute); cross.addRoute(/^([a-zA-Z0-9-]*)\/?(.*)$/, screenOnRoute);
hasher.changed.add(cross.parse.bind(cross)); hasher.add(cross.parse.bind(cross));
hasher.init(); hasher.init();
setTimeout(() => $htmlCL.remove('rl-started-trigger'), 100); setTimeout(() => $htmlCL.remove('rl-started-trigger'), 100);

10
dev/bootstrap.js vendored
View file

@ -56,8 +56,8 @@ export default App => {
rl.route.root(); rl.route.root();
setTimeout(() => (Settings.app('inIframe') ? parent : window).location.reload(), 100); setTimeout(() => (Settings.app('inIframe') ? parent : window).location.reload(), 100);
}, },
off: () => hasher.changed.active = false, off: () => hasher.active = false,
on: () => hasher.changed.active = true, on: () => hasher.active = true,
/** /**
* @param {string} sHash * @param {string} sHash
* @param {boolean=} silence = false * @param {boolean=} silence = false
@ -70,11 +70,11 @@ export default App => {
const cmd = replace ? 'replaceHash' : 'setHash'; const cmd = replace ? 'replaceHash' : 'setHash';
if (silence) { if (silence) {
hasher.changed.active = false; hasher.active = false;
hasher[cmd](hash); hasher[cmd](hash);
hasher.changed.active = true; hasher.active = true;
} else { } else {
hasher.changed.active = true; hasher.active = true;
hasher[cmd](hash); hasher[cmd](hash);
hasher.setHash(hash); hasher.setHash(hash);
} }

View file

@ -28,7 +28,7 @@
if (_hash !== newHash) { if (_hash !== newHash) {
var oldHash = _hash; var oldHash = _hash;
_hash = newHash; //should come before event dispatch to make sure user can get proper value inside event handler _hash = newHash; //should come before event dispatch to make sure user can get proper value inside event handler
hasher.changed.dispatch(_trimHash(newHash), _trimHash(oldHash)); hasher.dispatch(_trimHash(newHash), _trimHash(oldHash));
} }
}, },
_checkHistory = () => { _checkHistory = () => {
@ -64,13 +64,9 @@
* - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter. * - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter.
* @type signals.Signal * @type signals.Signal
*/ */
changed : {
active : true, active : true,
add : callback => _bindings.push(callback), add : callback => _bindings.push(callback),
dispatch : function(...args) { dispatch : (...args) => hasher.active && _bindings.forEach(callback => callback(...args)),
this.active && _bindings.forEach(callback => callback(...args));
}
},
/** /**
* Start listening/dispatching changes in the hash/history. * Start listening/dispatching changes in the hash/history.
@ -79,14 +75,14 @@
* </ul> * </ul>
*/ */
init : () => { init : () => {
hasher.init = ()=>{}; hasher.init = ()=>0;
_hash = _getWindowHash(); _hash = _getWindowHash();
//thought about branching/overloading hasher.init() to avoid checking multiple times but //thought about branching/overloading hasher.init() to avoid checking multiple times but
//don't think worth doing it since it probably won't be called multiple times. //don't think worth doing it since it probably won't be called multiple times.
addEventListener('hashchange', _checkHistory); addEventListener('hashchange', _checkHistory);
hasher.changed.dispatch(_trimHash(_hash)); hasher.dispatch(_trimHash(_hash));
}, },
/** /**