'use client' import { useEffect, useState } from 'react' import { Button } from '@/components/ui/button' import { RefreshCw } from 'lucide-react' import { cn } from '@/lib/utils' interface RefreshCountdownProps { onRefresh: () => void intervalMs?: number className?: string } export function RefreshCountdown({ onRefresh, intervalMs = 5 * 60 * 1000, // 5 minutes default className, }: RefreshCountdownProps) { const [secondsRemaining, setSecondsRemaining] = useState(intervalMs / 1000) const [isRefreshing, setIsRefreshing] = useState(false) useEffect(() => { const interval = setInterval(() => { setSecondsRemaining((prev) => { if (prev <= 1) { // Auto refresh handleRefresh() return intervalMs / 1000 } return prev - 1 }) }, 1000) return () => clearInterval(interval) }, [intervalMs]) const handleRefresh = async () => { setIsRefreshing(true) await onRefresh() setSecondsRemaining(intervalMs / 1000) setIsRefreshing(false) } const formatTime = (seconds: number): string => { const mins = Math.floor(seconds / 60) const secs = Math.floor(seconds % 60) return `${mins}:${secs.toString().padStart(2, '0')}` } const progressPercentage = ((intervalMs / 1000 - secondsRemaining) / (intervalMs / 1000)) * 100 return (