JSFiddle - React, Tailwind, and code Playground
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()
}