import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { ClearHistoryModal } from './ClearHistoryModal'; import { DeleteImportModal } from './DeleteImportModal'; import { getImports } from '../api/import'; import type { Import } from '@family-budget/shared'; function formatDate(iso: string): string { const d = new Date(iso); return d.toLocaleString('ru-RU', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', }); } export function DataSection() { const [showClearModal, setShowClearModal] = useState(false); const [imports, setImports] = useState([]); const [impToDelete, setImpToDelete] = useState(null); const navigate = useNavigate(); useEffect(() => { getImports().then(setImports).catch(() => {}); }, []); const handleImportDeleted = () => { setImpToDelete(null); getImports().then(setImports).catch(() => {}); navigate('/history'); }; return (

История импортов

Список импортов выписок. Можно удалить операции конкретного импорта.

{imports.length === 0 ? (

Импортов пока нет.

) : (
{imports.map((imp) => ( ))}
Дата Счёт Банк Импортировано Дубликаты
{formatDate(imp.importedAt)} {imp.accountAlias || imp.accountNumberMasked || '—'} {imp.bank} {imp.importedCount} {imp.duplicatesSkipped}
)}

Очистка данных

Очистить историю операций (все транзакции). Счета, категории и правила сохранятся.

{showClearModal && ( setShowClearModal(false)} onDone={() => { setShowClearModal(false); navigate('/history'); }} /> )} {impToDelete && ( setImpToDelete(null)} onDone={handleImportDeleted} /> )}
); }