UNPKG

@modern-kit/react

Version:
31 lines (29 loc) 1.33 kB
interface UseIdleProps { timeout: number; onIdle?: () => void; onActive?: () => void; } /** * @description 사용자의 `비활성(idle)` 상태를 감지하는 훅입니다. * * 지정된 시간 동안 사용자 활동이 없으면 `idle` 상태로 판단하며, 마우스 움직임, 키보드 입력, 터치 이벤트 등 사용자 활동을 감지합니다. * 페이지 visibility 변경도 감지하여 탭이 다시 활성화되면 `active` 상태로 전환됩니다. * * 모든 이벤트는 `500ms`로 스로틀링되어 불필요한 이벤트 호출을 방지합니다. * * @param {UseIdleProps} props - idle 감지 설정을 위한 객체입니다. * @param {number} props.timeout - 비활성 상태로 간주되기까지의 시간(밀리초) * @param {() => void} [props.onIdle] - idle 상태 진입 시 콜백 * @param {() => void} [props.onActive] - active 상태 진입 시 콜백 * * @returns {boolean} 현재 사용자가 idle 상태인지 여부를 반환합니다. * * @example * const isIdle = useIdle({ * timeout: 5000, // 5초 * onIdle: () => console.log('사용자가 비활성 상태입니다'), * onActive: () => console.log('사용자가 활성 상태입니다') * }); */ declare function useIdle({ timeout, onIdle, onActive }: UseIdleProps): boolean; export { useIdle };