forked from phenom/healer-man
Release Healer Man 0.1.9
This commit is contained in:
1 parent
c245a199b6
commit
d060296ade
74 files changed
+5901
-334
No files matched your search
@@ -0,0 +1,28 @@
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
export function documentIsVisible(): boolean {
|
||||
return typeof document === "undefined" || document.visibilityState === "visible";
|
||||
}
|
||||
|
||||
/**
|
||||
* Tracks whether rendering work can produce a visible frame. Page lifecycle
|
||||
* events cover native/WebView transitions where visibilityState can lag.
|
||||
*/
|
||||
export function useDocumentVisibility(): boolean {
|
||||
const [visible, setVisible] = useState(documentIsVisible);
|
||||
|
||||
useEffect(() => {
|
||||
const refresh = () => setVisible(documentIsVisible());
|
||||
const hide = () => setVisible(false);
|
||||
document.addEventListener("visibilitychange", refresh);
|
||||
window.addEventListener("pageshow", refresh);
|
||||
window.addEventListener("pagehide", hide);
|
||||
return () => {
|
||||
document.removeEventListener("visibilitychange", refresh);
|
||||
window.removeEventListener("pageshow", refresh);
|
||||
window.removeEventListener("pagehide", hide);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return visible;
|
||||
}
|
||||
Reference in new issue
Block a user