JSFiddle - React, Tailwind, and code Playground

HTML

<input>

JavaScript

var i = document.querySelector('input')
var inputFocus = false, pageTimer;
 
i.onfocus = () => {

	inputFocus = true;
  pageIdle()
}
  
i.onblur = () => { pageIdle() }


let refreshPage = () => {

  if (!inputFocus) console.log('page refresh')
}

let pageIdle = () => {
 
 console.log('user typing')
 if(pageTimer) clearTimeout(pageTimer)
 pageTimer = setTimeout(() => { inputFocus = false}, 6000) 
}

setInterval(refreshPage, 2000)

document.onkeydown = () => {

	inputFocus = true 
  pageIdle()
 
}