Skip to content

Commit 713da50

Browse files
committed
feat: Add some hooks
1 parent f2a3910 commit 713da50

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

src/hooks/useIsUserActive.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { useEffect, useState } from 'react'
2+
import createActivityDetector from 'activity-detector'
3+
4+
export default function useIsUserActive (timeToIdle: number): boolean {
5+
const [active, setActive] = useState(true)
6+
useEffect(() => {
7+
const activityDetector = createActivityDetector({
8+
timeToIdle: timeToIdle
9+
})
10+
activityDetector.on('idle', () => {
11+
setActive(false)
12+
})
13+
activityDetector.on('active', () => {
14+
setActive(true)
15+
})
16+
return () => {
17+
activityDetector.stop()
18+
}
19+
}, [timeToIdle])
20+
return active
21+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { useEffect, useState } from 'react'
2+
3+
export default function useShouldShutdownLanguageClient (userActive: boolean, delay: number): boolean {
4+
const [paused, setPaused] = useState(false)
5+
useEffect(() => {
6+
setPaused(false)
7+
if (!userActive) {
8+
const timeout = setTimeout(() => {
9+
setPaused(true)
10+
}, delay)
11+
return () => {
12+
clearTimeout(timeout)
13+
}
14+
}
15+
return () => {}
16+
}, [userActive, delay])
17+
return paused
18+
}

0 commit comments

Comments
 (0)