"use client";
import { useRouter } from "next/navigation";
import { useEffect } from "react";
/** Re-renders the page every few seconds while something on it is still running (and the tab is visible). */
export function LiveRefresh({ active, interval = 2000 }: { active: boolean; interval?: number }) {
const router = useRouter();
useEffect(() => {
if (!active) return;
const timer = setInterval(() => {
if (document.visibilityState === "visible") router.refresh();
}, interval);
return () => clearInterval(timer);
}, [active, interval, router]);
return null;
}