Files
habitica/website/client/libs/spellQueue.js
Keith Holliday 8d25a5d140 Added bulk spell queue (#10241)
* Added bulk spell queue

* Removed extra comment

* Moved queue to store
2018-04-23 20:30:55 -05:00

41 lines
677 B
JavaScript

let store = {};
let currentCount = 1;
let currentSpell = {
key: '',
};
let timer = null;
// @TODO: We are using this lib in actions, so we have to inject store
function setStore (storeInc) {
store = storeInc;
}
function castSpell () {
clearTimeout(timer);
currentSpell.quantity = currentCount;
store.dispatch('user:castSpell', currentSpell);
currentCount = 0;
}
function queue (spell, storeInc) {
setStore(storeInc);
currentCount += 1;
if (currentSpell.key && spell.key !== currentSpell.key) {
castSpell();
}
currentSpell = spell;
clearTimeout(timer);
timer = setTimeout(() => {
castSpell();
}, 1500);
}
export default { queue };