React Tab Visibility

In this content, you can know when your browser tab change

import { useEffect, useState } from ‘react’

import { useDispatch } from ‘react-redux’

import { conferenceActions } from ‘@/features/conference/conference.slice’

const useTabVisibility = () => {

const [action, setAction] = useState(false)

const dispatch = useDispatch()

useEffect(() => {

const hidden = () => {

dispatch(conferenceActions.setTabVisibility(true))

setAction(true)

}

const visible = () => {

dispatch(conferenceActions.setTabVisibility(false))

setAction(false)

}

const handleVisibilityChange = () => {

document.hidden ? hidden() : visible()

}

document.addEventListener(‘visibilitychange’, handleVisibilityChange, false)

window.addEventListener(‘focus’, visible, false)

window.addEventListener(‘blur’, hidden, false)

return () => {

document.removeEventListener(‘visibilitychange’, handleVisibilityChange)

window.removeEventListener(‘focus’, visible)

window.removeEventListener(‘blur’, hidden)

}

}, [setAction])

}

export default useTabVisibility

--

--

Md Farhad Hossain
0 Followers

Technology enthusiast, diligent and has a great ability to learn something new quickly. Obviously a good human being and affable.