JSFiddle - React, Tailwind, and code Playground

JavaScript

var last = 0;
var repeating = false;
var repeatRateTimer = null;

$(document).bind("keyup", function(input) {
    if(repeatRateTimer != null) {
        clearTimeout(repeatRateTimer);
        repeatRateTimer = null;
    }

    repeating = false;
});

$(document).bind("keydown", function(input) {
    input.preventDefault();

    if(repeating == true) {
        if(repeatRateTimer == null) {
            repeatRateTimer = setTimeout(function () {
                repeating = false;
                clearTimeout(repeatRateTimer);
                repeatRateTimer = null;
            }, 1000);
        }
        return;
    }

    repeating = true;

    var now = Date.now();
    var time = last ? now - last : 0;
    last = now;

    document.body.innerHTML += input.which + " (" + time + " ms)<br/>";
});