Revert SSE streaming for PDF import, use synchronous flow

SSE streaming added unnecessary complexity and latency due to
buffering issues across Node.js event loop, Nginx proxy, and
Docker layers. Reverted to a simple synchronous request/response
for PDF conversion. Kept extractLlmErrorMessage for user-friendly
LLM errors, lazy-loaded pdf-parse, and extended Nginx timeout.
This commit is contained in:
vakabunga
2026-03-14 20:12:27 +03:00
parent ea234ea007
commit 8b57dd987e
10 changed files with 73 additions and 695 deletions

View File

@@ -18,7 +18,6 @@ import { TransactionTable } from '../components/TransactionTable';
import { Pagination } from '../components/Pagination';
import { EditTransactionModal } from '../components/EditTransactionModal';
import { ImportModal } from '../components/ImportModal';
import { useImport } from '../context/ImportContext';
import { toISODate } from '../utils/format';
const PARAM_KEYS = [
@@ -126,7 +125,7 @@ export function HistoryPage() {
const [accounts, setAccounts] = useState<Account[]>([]);
const [categories, setCategories] = useState<Category[]>([]);
const [editingTx, setEditingTx] = useState<Transaction | null>(null);
const { showModal: showImport, openModal: openImport, closeModal: closeImport, clearImport } = useImport();
const [showImport, setShowImport] = useState(false);
useEffect(() => {
getAccounts().then(setAccounts).catch(() => {});
@@ -198,8 +197,7 @@ export function HistoryPage() {
};
const handleImportDone = () => {
closeImport();
clearImport();
setShowImport(false);
fetchData();
getAccounts().then(setAccounts).catch(() => {});
};
@@ -210,7 +208,7 @@ export function HistoryPage() {
<h1>История операций</h1>
<button
className="btn btn-primary"
onClick={openImport}
onClick={() => setShowImport(true)}
>
Импорт выписки
</button>
@@ -264,7 +262,7 @@ export function HistoryPage() {
{showImport && (
<ImportModal
onClose={closeImport}
onClose={() => setShowImport(false)}
onDone={handleImportDone}
/>
)}