'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Loader2, RefreshCw } from 'lucide-react'; import { Button } from '@/components/ui/button'; export function RefreshR2StatsButton() { const router = useRouter(); const [isRefreshing, setIsRefreshing] = useState(false); const [error, setError] = useState(null); const handleRefresh = async () => { setIsRefreshing(true); setError(null); try { const response = await fetch('/api/admin/stats/refresh-r2', { method: 'POST', }); const payload = await response.json().catch(() => ({})); if (!response.ok) { const message = (payload as { error?: string }).error || 'Failed to refresh R2 stats'; setError(message); return; } router.refresh(); } catch { setError('Failed to refresh R2 stats'); } finally { setIsRefreshing(false); } }; return (
{error ?

{error}

: null}
); }