A zero dependency, ~3KB library to make idle state detection in the browser an ease. With it's simple but yet powerful API it features everything you will ever need.
npm install idle-timeoutpnpm add idle-timeoutyarn add idle-timeout<script src="https://unpkg.com/idle-timeout/dist/idle-timeout.min.umd.js"></script>idleTimeout is totally easy to use. All you need to do is:
import idleTimeout from 'idle-timeout';
idleTimeout(() => {
console.log('Idle state detected.');
});The idleTimeout constructor takes two arguments:
callback [Function]- The callback function (receiveselementandtimeoutas arguments)element [Element]- The element that was listened for the timeouttimeout [Number]- The current timeout value in milliseconds
options [Object]- An optional options objectelement [Element]- The element to listen for the timeouttimeout [Number]- The idle timeout (in milliseconds)loop [Boolean]- Whether the timeout should be looped when idle
const instance = idleTimeout(
(element, timeout) => {
console.log(`Idle state detected on ${element} after ${timeout} ms`);
},
{
element: document,
timeout: 1000 * 60 * 5,
loop: false
}
);pause() - Pauses the timeout
instance.pause();resume() - Resumes an paused timeout
instance.resume();reset() - Reset the timeout
instance.reset();destroy() - Destroy the instance
instance.destroy();idle [Boolean] - Whether the current state is idle
instance.idle; // falsetimeout = value [Number] - Set the timeout (in milliseconds)
instance.timeout = 1000 * 60;loop = value [Boolean] - Set whether the timeout should be looped
instance.loop = true;idle = value [Boolean] - Set the idle state
instance.idle = true;This project is licensed under the terms of the MIT License.