import { useEffect, useState } from "react"; import { RefreshIcon } from "tdesign-icons-react"; import { Button, Typography } from "tdesign-react"; import { formatCountdown } from "../utils/time"; interface RefreshCountdownProps { dashboardUpdatedAt: number; isFetching: boolean; isManualRefresh: boolean; onRefresh: () => void; refreshInterval: number; } export function RefreshCountdown({ dashboardUpdatedAt, isFetching, isManualRefresh, onRefresh, refreshInterval, }: RefreshCountdownProps) { const [now, setNow] = useState(() => new Date()); useEffect(() => { const timer = window.setInterval(() => setNow(new Date()), 1000); return () => window.clearInterval(timer); }, []); const nextRefreshSeconds = dashboardUpdatedAt > 0 && !isManualRefresh ? Math.max(0, Math.ceil((dashboardUpdatedAt + refreshInterval - now.getTime()) / 1000)) : null; if (isManualRefresh) { return (