import { useState, useCallback } from "react"; import { useTranslation } from "react-i18next"; import { useImportWizard } from "../hooks/useImportWizard"; import ImportFolderConfig from "../components/import/ImportFolderConfig"; import SourceList from "../components/import/SourceList"; import SourceConfigPanel from "../components/import/SourceConfigPanel"; import DuplicateCheckPanel from "../components/import/DuplicateCheckPanel"; import ImportConfirmation from "../components/import/ImportConfirmation"; import ImportProgress from "../components/import/ImportProgress"; import ImportReportPanel from "../components/import/ImportReportPanel"; import WizardNavigation from "../components/import/WizardNavigation"; import ImportHistoryPanel from "../components/import/ImportHistoryPanel"; import FilePreviewModal from "../components/import/FilePreviewModal"; import { AlertCircle, Eye, X, ChevronLeft } from "lucide-react"; import { PageHelp } from "../components/shared/PageHelp"; export default function ImportPage() { const { t } = useTranslation(); const { state, browseFolder, refreshFolder, selectSource, updateConfig, toggleFile, selectAllFiles, parsePreview, parseAndCheckDuplicates, executeImport, goToStep, reset, autoDetectConfig, saveConfigAsTemplate, applyConfigTemplate, updateConfigTemplate, deleteConfigTemplate, toggleDuplicateRow, setSkipAllDuplicates, } = useImportWizard(); const [showPreviewModal, setShowPreviewModal] = useState(false); const handlePreview = useCallback(async () => { await parsePreview(); setShowPreviewModal(true); }, [parsePreview]); const nextDisabled = state.selectedFiles.length === 0 || !state.sourceConfig.name; return (
{state.error}