--- category: Sensors --- # useIdle Tracks whether the user is being inactive. ## Usage ```ts import { useIdle } from '@vueuse/core'; const { idle, lastActive } = useIdle(5 * 60 * 1000); // 5 min console.log(idle.value); // true or false ``` Programatically resetting: ```ts import { useCounter, useIdle } from '@vueuse/core'; import { watch } from 'vue'; const { inc, count } = useCounter(); const { idle, lastActive, reset } = useIdle(5 * 60 * 1000); // 5 min watch(idle, (idleValue) => { if (idleValue) { inc(); console.log(`Triggered ${count.value} times`); reset(); // restarts the idle timer. Does not change lastActive value } }); ``` ## Component Usage ```vue ``` ## Type Declarations ```ts export interface UseIdleOptions extends ConfigurableWindow, ConfigurableEventFilter { /** * Event names that listen to for detected user activity * * @default ['mousemove', 'mousedown', 'resize', 'keydown', 'touchstart', 'wheel'] */ events?: WindowEventName[]; /** * Listen for document visibility change * * @default true */ listenForVisibilityChange?: boolean; /** * Initial state of the ref idle * * @default false */ initialState?: boolean; } export interface UseIdleReturn extends Stoppable { idle: ShallowRef; lastActive: ShallowRef; reset: () => void; } /** * Tracks whether the user is being inactive. * * @see https://vueuse.org/useIdle * @param timeout default to 1 minute * @param options IdleOptions */ export declare function useIdle(timeout?: number, options?: UseIdleOptions): UseIdleReturn; ```