JSFiddle - React, Tailwind, and code Playground
by rickysullivan
JavaScript
function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this,
args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
var keyString = [];
var storeKeyStroke = function (e) {
keyString.push(e.keyCode);
checkKeyString(keyString);
};
var checkKeyString = debounce(function (arr) {
var strCommand = String.fromCharCode.apply(null, arr);
checkCommand(strCommand);
keyString = [];
//remindPaul(strCommand.length);
}, 300);
var checkCommand = function (cmd) {
switch (cmd) {
case "PAUL":
console.log("Hello, yes this is Paul");
break;
case "RICKY":
console.log("This is Ricky, giving 0 fucks");
break;
default:
console.log("No command given, fuck off");
break;
}
}
var remindPaul = debounce(function (n) {
console.log("Paul has " + n + " JavaScripts");
}, 1000);
window.addEventListener('keydown', storeKeyStroke);