import { useEffect } from "react"; import { CheckCircle, Loader2, AlertCircle } from "lucide-react"; import { useTranslation } from "react-i18next"; interface ImportProgressModalProps { status: 'importing' | 'success' | 'error'; message?: string; backupId?: string; onComplete?: () => void; onSuccess?: () => void; } export function ImportProgressModal({ status, message, backupId, onComplete, onSuccess }: ImportProgressModalProps) { const { t } = useTranslation(); useEffect(() => { if (status === 'success') { console.log('[ImportProgressModal] Success detected, starting 2 second countdown'); // 成功后等待2秒自动关闭并刷新数据 const timer = setTimeout(() => { console.log('[ImportProgressModal] 2 seconds elapsed, calling callbacks...'); if (onSuccess) { onSuccess(); } if (onComplete) { onComplete(); } }, 2000); return () => { console.log('[ImportProgressModal] Cleanup timer'); clearTimeout(timer); }; } }, [status, onComplete, onSuccess]); return (
{t("common.loading")}
> )} {status === 'success' && ( <>{t("settings.backupId")}: {backupId}
)}{t("settings.autoReload")}
> )} {status === 'error' && ( <>{message || t("settings.configCorrupted")}
> )}