'use client'; import { useRef, useState } from 'react'; interface FileImportTabProps { onImport: (content: string) => Promise | boolean; } export function FileImportTab({ onImport }: FileImportTabProps) { const [error, setError] = useState(''); const [success, setSuccess] = useState(false); const fileInputRef = useRef(null); const handleFileSelect = async (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (!file) return; setError(''); setSuccess(false); const reader = new FileReader(); reader.onload = async (event) => { try { const content = event.target?.result as string; const result = await onImport(content); if (result) { setSuccess(true); setError(''); } else { setError('导入失败:文件格式无效'); setSuccess(false); } } catch (err) { console.error(err); setError('导入失败:无法读取文件或格式错误'); setSuccess(false); } }; reader.readAsText(file); // Reset input so same file can be selected again if needed if (fileInputRef.current) { fileInputRef.current.value = ''; } }; return (

选择之前导出的设置文件(JSON 配置文件)。支持新旧版本格式。

{error && (
{error}
)} {success && (
导入成功!正在刷新...
)}
); }