Skip to content

Instantly share code, notes, and snippets.

@Soumyarian98
Created November 17, 2024 22:45
Show Gist options
  • Select an option

  • Save Soumyarian98/f708969285ddd845c85e5edca5905cbb to your computer and use it in GitHub Desktop.

Select an option

Save Soumyarian98/f708969285ddd845c85e5edca5905cbb to your computer and use it in GitHub Desktop.
import { useState, useEffect } from 'react';
type VisibilityState = 'visible' | 'hidden';
export const usePageVisibility = (): VisibilityState => {
const [visibilityState, setVisibilityState] = useState<VisibilityState>(
document.visibilityState as VisibilityState
);
useEffect(() => {
const handleVisibilityChange = () => {
setVisibilityState(document.visibilityState as VisibilityState);
};
document.addEventListener('visibilitychange', handleVisibilityChange);
return () => {
document.removeEventListener('visibilitychange', handleVisibilityChange);
};
}, []);
return visibilityState;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment