import { useState } from 'react'; import { clearAllTransactions } from '../api/transactions'; const CONFIRM_WORD = 'УДАЛИТЬ'; interface Props { onClose: () => void; onDone: () => void; } export function ClearHistoryModal({ onClose, onDone }: Props) { const [check1, setCheck1] = useState(false); const [confirmInput, setConfirmInput] = useState(''); const [check2, setCheck2] = useState(false); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const canConfirm = check1 && confirmInput.trim().toUpperCase() === CONFIRM_WORD && check2; const handleConfirm = async () => { if (!canConfirm || loading) return; setLoading(true); setError(''); try { await clearAllTransactions(); onDone(); } catch (e) { setError( e instanceof Error ? e.message : 'Ошибка при очистке истории', ); } finally { setLoading(false); } }; return (
e.stopPropagation()}>

Очистить историю операций

Все транзакции будут безвозвратно удалены. Счета и категории сохранятся.

{error &&
{error}
}
setConfirmInput(e.target.value)} placeholder={CONFIRM_WORD} className={confirmInput && confirmInput.trim().toUpperCase() !== CONFIRM_WORD ? 'input-error' : ''} autoComplete="off" />
); }