'use client';
import { useState } from 'react';
import {
Dialog,
DialogTitle,
DialogContent,
DialogActions,
Button,
Box,
Typography,
Stepper,
Step,
StepLabel,
Alert
} from '@mui/material';
import { useTranslation } from 'react-i18next';
import FileUploadStep from './import/FileUploadStep';
// import DatasetSourceStep from './import/DatasetSourceStep'; // 不再需要
import FieldMappingStep from './import/FieldMappingStep';
import ImportProgressStep from './import/ImportProgressStep';
/**
* 数据集导入对话框
*/
export default function ImportDatasetDialog({ open, onClose, projectId, onImportSuccess }) {
const { t } = useTranslation();
const [importType, setImportType] = useState('file'); // 只支持文件上传
const [currentStep, setCurrentStep] = useState(0);
const [importData, setImportData] = useState({
rawData: null,
previewData: null,
fieldMapping: {},
sourceInfo: null
});
const [error, setError] = useState('');
const steps = [
t('import.fileUpload', '文件上传'),
t('import.mapFields', '字段映射'),
t('import.importing', '导入中')
];
const handleNext = () => {
setCurrentStep(prev => prev + 1);
};
const handleBack = () => {
setCurrentStep(prev => prev - 1);
};
const handleClose = () => {
setCurrentStep(0);
setImportData({
rawData: null,
previewData: null,
fieldMapping: {},
sourceInfo: null
});
setError('');
onClose();
};
const handleDataLoaded = (data, preview, source) => {
setImportData({
...importData,
rawData: data,
previewData: preview,
sourceInfo: source
});
setError('');
handleNext();
};
const handleFieldMappingComplete = mapping => {
setImportData({
...importData,
fieldMapping: mapping
});
handleNext();
};
const handleImportComplete = () => {
handleClose();
if (onImportSuccess) {
onImportSuccess();
}
};
const renderStepContent = () => {
switch (currentStep) {
case 0:
return ;
case 1:
return (
);
case 2:
return (
);
default:
return null;
}
};
return (
);
}