import { useEffect, useRef } from 'react';

/**
 * Hook để track visibility của browser tab
 * Trả về ref chứa trạng thái visible hiện tại
 * 
 * Sử dụng để pause polling khi tab ẩn, giảm tải cho server và CPU
 */
export function useTabVisibility() {
  const isVisibleRef = useRef(!document.hidden);

  useEffect(() => {
    const handleVisibilityChange = () => {
      isVisibleRef.current = !document.hidden;
      console.log('[TabVisibility]', document.hidden ? 'Tab hidden - pausing polls' : 'Tab visible - resuming polls');
    };
    document.addEventListener('visibilitychange', handleVisibilityChange);
    return () => document.removeEventListener('visibilitychange', handleVisibilityChange);
  }, []);

  return isVisibleRef;
}
