19 lines
444 B
TypeScript
19 lines
444 B
TypeScript
import { ref } from 'vue';
|
|
import { inBrowser } from '../shared';
|
|
import { useEventListener } from '../useEventListener';
|
|
|
|
export function usePageVisibility() {
|
|
const visibility = ref<VisibilityState>('visible');
|
|
|
|
const setVisibility = () => {
|
|
if (inBrowser) {
|
|
visibility.value = document.hidden ? 'hidden' : 'visible';
|
|
}
|
|
};
|
|
|
|
setVisibility();
|
|
useEventListener('visibilitychange', setVisibility);
|
|
|
|
return visibility;
|
|
}
|