useIdle
Tracks whether the user is being inactive.
Demo
For demonstration purpose, the idle timeout is set to 5s in this demo (default 1min).
Idle: false
Inactive: 0s
Usage
js
import { useIdle } from '@vueuse/core'
const { idle, lastActive } = useIdle(5 * 60 * 1000) // 5 min
console.log(idle.value) // true or false
import { useIdle } from '@vueuse/core'
const { idle, lastActive } = useIdle(5 * 60 * 1000) // 5 min
console.log(idle.value) // true or false
Component Usage
This function also provides a renderless component version via the
@vueuse/components
package. Learn more about the usage.
html
<UseIdle v-slot="{ idle }" :timeout="5 * 60 * 1000">
Is Idle: {{ idle }}
</UseIdle>
<UseIdle v-slot="{ idle }" :timeout="5 * 60 * 1000">
Is Idle: {{ idle }}
</UseIdle>
Type Declarations
typescript
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 {
idle: Ref<boolean>
lastActive: Ref<number>
}
/**
* 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
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 {
idle: Ref<boolean>
lastActive: Ref<number>
}
/**
* 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
Source
Contributors
Anthony Fu
wheat
Hawtim
vaakian X
Jelf
Dan Mindru
btea
Shinigami
Alex Kozack
Antério Vieira