mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-15 13:21:29 +08:00

* feat: dashboard widget page is refactored * chore: key is updated * chore: delete widget is updated * chore: naming of the file is updated * feat: dashboard changes are updated and selected dashboard and dashboardId is added * chore: dashboard widget page is updated * feat: setlayout is updated * chore: selected dashboard is updated * chore: dashboard is updated * fix: feedback is updated * chore: comments are resolved * chore: empty widget id is updated * fix: variables is updated * chore: dashboard variable and name,description is now updated in hooks * chore: build is fixed * chore: loading experience is updated * chore: title is updated * fix: dashboard variables and other changes are updated * feat: dashboard reducer is removed * feat: widget header is updated * feat: widget header is updated * chore: dashboard is updated * chore: feedback is updated * fix: issues are fixed * chore: delete is updated * chore: warning message is updated * chore: warning message is updated * chore: widget graph component * feat: dashboard condition is updated * chore: getChartData is updated * chore: widget details page is updated * feat: tab sync is updated * chore: layout is updated * chore: labels is updated * chore: message is updated * chore: warining message is updated --------- Co-authored-by: Rajat Dabade <rajat@signoz.io> Co-authored-by: Vishal Sharma <makeavish786@gmail.com>
29 lines
797 B
TypeScript
29 lines
797 B
TypeScript
import { useEffect, useRef, useState } from 'react';
|
|
|
|
const useTabVisibility = (): boolean => {
|
|
const [isVisible, setIsVisible] = useState(false);
|
|
const prevVisibilityRef = useRef<boolean>(isVisible);
|
|
|
|
useEffect(() => {
|
|
const handleVisibilityChange = (): void => {
|
|
const isTabVisible = document.visibilityState === 'visible';
|
|
if (isTabVisible && !prevVisibilityRef.current) {
|
|
setIsVisible(true);
|
|
} else if (!isTabVisible && prevVisibilityRef.current) {
|
|
setIsVisible(false);
|
|
}
|
|
prevVisibilityRef.current = isTabVisible;
|
|
};
|
|
|
|
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
|
|
return (): void => {
|
|
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
};
|
|
}, []);
|
|
|
|
return isVisible;
|
|
};
|
|
|
|
export default useTabVisibility;
|