From 77ceae5b9fd0d735ba8284a5cad010ddb4b34cb7 Mon Sep 17 00:00:00 2001 From: Damjan Savic Date: Sun, 25 Jan 2026 06:25:05 +0100 Subject: [PATCH] auto-claude: subtask-1-2 - Create usePageVisibility hook for tab visibility detection --- src/hooks/usePageVisibility.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/hooks/usePageVisibility.ts diff --git a/src/hooks/usePageVisibility.ts b/src/hooks/usePageVisibility.ts new file mode 100644 index 0000000..5eb0083 --- /dev/null +++ b/src/hooks/usePageVisibility.ts @@ -0,0 +1,23 @@ +import { useState, useEffect } from 'react'; + +/** + * Hook to detect tab visibility using the Page Visibility API + * @returns boolean - true when page is visible, false when hidden + */ +export const usePageVisibility = (): boolean => { + const [isVisible, setIsVisible] = useState(!document.hidden); + + useEffect(() => { + const handleVisibilityChange = () => { + setIsVisible(!document.hidden); + }; + + document.addEventListener('visibilitychange', handleVisibilityChange); + + return () => { + document.removeEventListener('visibilitychange', handleVisibilityChange); + }; + }, []); + + return isVisible; +};