Repository Public
1"use client";2import { useRouter } from "next/navigation";3import { useEffect } from "react";45/** Re-renders the server component tree while work is in progress. */6export function AutoRefresh({ seconds = 5, active = true }: { seconds?: number; active?: boolean }) {7 const router = useRouter();8 useEffect(() => {9 if (!active) return;10 const id = setInterval(() => { if (document.visibilityState === "visible" && !document.querySelector("textarea:focus, input:focus")) router.refresh(); }, seconds * 1000);11 return () => clearInterval(id);12 }, [active, seconds, router]);13 return null;14}15