--- 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 ```