fix: EKAP dokümanları açılmıyor — yeni sekme tıklama anında açılıyor, boşluklu İKN'ler düzeltildi

İki ayrı neden vardı:

1) window.open sunucu yanıtından SONRA çağrılıyordu; Safari, PWA ve sıkı ayarlı
   Chrome bunu açılır-pencere sayıp sessizce engelliyordu — düğme "çalışmıyor"
   görünüyordu. Sekme artık tıklamanın hemen içinde boş açılır, adres gelince
   yönlendirilir. Engellenirse gerçek bir bağlantı (a href) gösterilir; bağlantı
   tıklaması hiçbir tarayıcıda engellenmez.

2) ilan.gov.tr bazı kayıtlarda İKN'yi başta/sonda boşluk ve kesme boşluğu (nbsp)
   ile veriyor (" 2026/1622878"). Bu 50 kayıtta panel "EKAP formatında değil"
   deyip düğmeyi hiç göstermiyordu. İKN artık alınırken boşluksuz saklanıyor;
   panel ve doküman araması da savunma amaçlı temizliyor.

Ayrıca: "EKAP'ta 0 doküman kayıtlı" yanıltıcı metni kaldırıldı (EKAP arama
kaydı sayıyı vermiyor), EKAP'ın önce güvenlik doğrulaması istediği açıklandı.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 23:53:43 +03:00
co-authored by Claude Fable 5.1
parent 8e9dff6833
commit 2271883be4
3 changed files with 46 additions and 7 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (
/** IKN'den taze bir EKAP kaydı bulur (id token anlıktır, saklanamaz). */
export async function findByIkn(ikn) {
const [yil, sayi] = String(ikn || '').split('/');
const [yil, sayi] = String(ikn || '').replace(/[\s\u00a0]+/g, '').split('/');
if (!yil || !sayi) throw new Error('Geçersiz İKN');
const r = await searchTenders({ iknYili: Number(yil), iknSayi: Number(sayi), take: 1 });
const t = r.list[0];