add router event handling helper methods
This commit is contained in:
parent
3eb27c48ea
commit
92d42b0f69
@ -41,21 +41,26 @@ export default {
|
|||||||
history.pushState({}, '', base + url);
|
history.pushState({}, '', base + url);
|
||||||
this.react();
|
this.react();
|
||||||
},
|
},
|
||||||
emit(event, params) {
|
emit(eventName, params) {
|
||||||
Events.history.unshift({ event, params });
|
Events.history.unshift({ eventName, params });
|
||||||
Events.history.length = Math.min(Events.history.length, 50);
|
Events.history.length = Math.min(Events.history.length, 50);
|
||||||
|
|
||||||
Events.entries[event]?.forEach(fn => fn(params));
|
Events.entries[eventName]?.forEach(fn => fn(params));
|
||||||
},
|
},
|
||||||
on(event, callback) {
|
on(eventName, callback) {
|
||||||
if (! Events.entries[event]) Events.entries[event] = [];
|
if (! Events.entries[eventName]) Events.entries[eventName] = [];
|
||||||
Events.entries[event]?.push(callback);
|
Events.entries[eventName]?.push(callback);
|
||||||
|
|
||||||
|
return {
|
||||||
|
recall: () => {
|
||||||
|
for (let e of Events.history)
|
||||||
|
if (e.eventName === eventName)
|
||||||
|
return callback(e.params);
|
||||||
},
|
},
|
||||||
recall(event) {
|
cancel: () => {
|
||||||
return Events.history.find(e => e.event === event);
|
let callbacks = Events.entries[eventName];
|
||||||
},
|
this.on(eventName, () => Events.entries[eventName] = callbacks);
|
||||||
cancel(event) {
|
}
|
||||||
let callbacks = Events.entries[event]?.splice(0, 50);
|
};
|
||||||
this.on(event, () => Events.entries[event] = callbacks);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user