From 99cfba7a3d83d7a7236d097a60bc5948b529e18a Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 18:09:58 +0300 Subject: [PATCH] lazy load PDF text extraction --- docs/quality/uygulama-durumu.md | 6 ++++++ src/components/TenderDocuments.jsx | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index bf12285..fb593d3 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -1982,3 +1982,9 @@ Doğrulama: HTTP profil testleri 19/19 geçti, üretim derlemesi başarılı. Kaynak havuzundan gelen null, dizi veya kimliksiz satırlar artık tekilleştirme sırasında tüm havuzu düşürmüyor; geçersiz satır atlanıp geçerli ihale kayıtları işlenmeye devam ediyor. Doğrulama: 287 test geçti, üretim derlemesi başarılı. + +### 2026-09-06 · PDF ayrıştırma code-splitting + +İhale dokümanı paneli artık PDF metin ayrıştırıcısını yalnızca kullanıcı PDF okuma/kalem çıkarma istediğinde yüklüyor; ilk uygulama açılışındaki JavaScript yükü azaltıldı. Üretim derlemesindeki büyük üçüncü taraf chunk uyarıları (PDF/ExcelJS) devam ediyor ve sonraki performans çalışmasının girdisi olarak kaydedildi. + +Doğrulama: 287 test geçti, üretim derlemesi başarılı. diff --git a/src/components/TenderDocuments.jsx b/src/components/TenderDocuments.jsx index e2649d0..a2a180b 100644 --- a/src/components/TenderDocuments.jsx +++ b/src/components/TenderDocuments.jsx @@ -6,7 +6,6 @@ import { useApp } from '../context/AppContext'; import { getToken } from '../services/auth'; import { FileText, ExternalLink, Loader2, Sparkles, AlertTriangle, Download, Upload, Trash2, Paperclip, Route } from 'lucide-react'; import { uploadDocument, listTenderDocuments, deleteDocument, reportDocumentReadError } from '../services/account'; -import { extractText } from '../services/pdfText'; /** * İhale dokümanları paneli. @@ -92,7 +91,10 @@ const TenderDocumentSession = ({ tender }) => { if (!kalem && ikn && /\.(pdf|txt|md)$/i.test(f.name)) { try { let text; - try { ({text} = await extractText(f,{signal:readLifetime.current.signal})); } + try { + const { extractText } = await import('../services/pdfText'); + ({text} = await extractText(f,{signal:readLifetime.current.signal})); + } catch (readError) { assertCurrent(); if(readError.name === 'AbortError')throw readError;