From 579b5f1a04e755998ecbaba513a76b3e16025c0a Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Mon, 20 Apr 2026 18:02:04 +0200 Subject: [PATCH] chore(ui): delete unused usePageVisible hook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added as a reusable primitive during Plan 03 Task 9, but the intended consumer (NotificationBell live-region refresh) was removed during code review, leaving the hook unused. Delete it — YAGNI; reintroduce when a real consumer shows up. Verified upstream impact (gitnexus): 0 callers, LOW risk. Co-Authored-By: Claude Opus 4.7 (1M context) --- ui/src/hooks/usePageVisible.test.ts | 30 ----------------------------- ui/src/hooks/usePageVisible.ts | 22 --------------------- 2 files changed, 52 deletions(-) delete mode 100644 ui/src/hooks/usePageVisible.test.ts delete mode 100644 ui/src/hooks/usePageVisible.ts diff --git a/ui/src/hooks/usePageVisible.test.ts b/ui/src/hooks/usePageVisible.test.ts deleted file mode 100644 index 488fcc28..00000000 --- a/ui/src/hooks/usePageVisible.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { describe, it, expect, beforeEach } from 'vitest'; -import { renderHook, act } from '@testing-library/react'; -import { usePageVisible } from './usePageVisible'; - -describe('usePageVisible', () => { - beforeEach(() => { - Object.defineProperty(document, 'visibilityState', { - value: 'visible', - configurable: true, - writable: true, - }); - }); - - it('returns true when visible, false when hidden', () => { - const { result } = renderHook(() => usePageVisible()); - expect(result.current).toBe(true); - - act(() => { - Object.defineProperty(document, 'visibilityState', { value: 'hidden', configurable: true }); - document.dispatchEvent(new Event('visibilitychange')); - }); - expect(result.current).toBe(false); - - act(() => { - Object.defineProperty(document, 'visibilityState', { value: 'visible', configurable: true }); - document.dispatchEvent(new Event('visibilitychange')); - }); - expect(result.current).toBe(true); - }); -}); diff --git a/ui/src/hooks/usePageVisible.ts b/ui/src/hooks/usePageVisible.ts deleted file mode 100644 index fbfc4654..00000000 --- a/ui/src/hooks/usePageVisible.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { useEffect, useState } from 'react'; - -/** - * Tracks Page Visibility API state for the current document. - * - * Returns `true` when the tab is visible, `false` when hidden. Useful for - * pausing work (polling, animations, expensive DOM effects) while the tab - * is backgrounded. SSR-safe: defaults to `true` when `document` is undefined. - */ -export function usePageVisible(): boolean { - const [visible, setVisible] = useState(() => - typeof document === 'undefined' ? true : document.visibilityState === 'visible', - ); - - useEffect(() => { - const onChange = () => setVisible(document.visibilityState === 'visible'); - document.addEventListener('visibilitychange', onChange); - return () => document.removeEventListener('visibilitychange', onChange); - }, []); - - return visible; -}