Files
supabase/studio/hooks/ui/useIsActive.ts
Joshen Lim 9373f69220 Studio 🎙
2021-11-26 11:15:00 +05:30

24 lines
610 B
TypeScript

import { useState, useEffect } from 'react'
/**
* Returns boolean flag of whether a window is in focus
*/
export const useIsActive = () => {
const [active, setActive] = useState<boolean>(false)
// window listener
const onFocus = () => setActive(true)
const onBlur = () => setActive(false)
useEffect(() => {
window.addEventListener('focus', onFocus)
window.addEventListener('blur', onBlur)
// Specify how to clean up after this effect:
return () => {
window.removeEventListener('focus', onFocus)
window.removeEventListener('blur', onBlur)
}
})
return active
}