JSFiddle - React, Tailwind, and code Playground

JavaScript

function waitForMsg(){
     if( !window_focus || (  new Date().getTime() - lastMouseMoveTime ) > 5*1000 ){
          window_focus = false;
         console.log("stoping");
         return;
       }    
    console.log("running");
    setTimeout(waitForMsg, 100);
}

var window_focus = true, lastMouseMoveTime;  
    lastMouseMoveTime = new Date().getTime();

    // Check focal point
    $(window).focus(function () {
        if (window_focus) {
            return
        }
        window_focus = true;
        waitForMsg();

    }).blur(function () {
        if (!window_focus) {
            return
        }
        window_focus = false;
        console.log('Init Suspension...');
        // Set Timeout
    });

    waitForMsg();
    $(document).mousemove(function(){
        console.log("mousemove");
        if(!window_focus ){
           window_focus = true;
            waitForMsg(); // restarting ajax if it stopped because of mousemove.
        }
        lastMouseMoveTime = new Date().getTime();
    });