From d00177ccc87dc8e155e679333305535c19028871 Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 16:27:20 +0300 Subject: [PATCH] fix: avoid fabricated dates on tender cards --- docs/quality/uygulama-durumu.md | 6 ++++++ src/components/TenderCard.jsx | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index fb1d167..1ec008f 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -1302,3 +1302,9 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö - Seçili günün “tarihli ihaleler” başlığı `aria-live="polite"` olarak işaretlendi. Gün düğmesiyle seçim değiştiğinde ekran okuyucu yeni tarih bağlamını duyurabiliyor. - 280 test ve build başarılı. Gerçek ekran okuyucu ile sesli kabul testi yapılmadı; genel plan açık. + +### 2026-09-06 — İhale kartında bilinmeyen tarih + +- İhale kartı, tarih alanı boş veya beklenen `gg.aa.yyyy` biçiminde değilse artık `01` ve sahte ay göstermiyor. Gün alanında `—`, ay alanında “Tarih doğrulanmalı”, saat yoksa “Saat doğrulanmalı” gösteriliyor. +- Bilinen tarihlerin mevcut gün/ay sunumu korunuyor. Böylece liste kartı, takvim ve detaydaki doğrulama gerektiren kayıtlarla çelişmiyor. +- 280 test ve build başarılı. Eksik tarih kartının gerçek tarayıcı kabulü henüz eklenmedi; genel plan açık. diff --git a/src/components/TenderCard.jsx b/src/components/TenderCard.jsx index 2818f1e..924c5b9 100644 --- a/src/components/TenderCard.jsx +++ b/src/components/TenderCard.jsx @@ -8,8 +8,9 @@ export const TenderCard = ({ tender }) => { const eslesenKalemler = (kalemEslesen && tender.ikn && kalemEslesen.get(tender.ikn)) || null; const isFavKurum = favoriteKurumlar?.includes((tender.kurum || '').trim()); - const [day, monthYear] = tender.tarih ? tender.tarih.split('.') : ['01', '01.2026']; - const monthYearFormatted = monthYear ? `${monthYear}` : '08.2026'; + const dateMatch = /^(\d{2})\.(\d{2})\.(\d{4})(?:\s|$)/.exec(String(tender.tarih || '').trim()); + const day = dateMatch?.[1] || '—'; + const monthYearFormatted = dateMatch ? `${dateMatch[2]}.${dateMatch[3]}` : 'Tarih doğrulanmalı'; // İlan (yayım) tarihi kaynaklara göre farklı biçimde geliyor: // canlı akış ISO (2026-08-30), DT/arşiv gg.aa.yyyy. İkisini de gösterebilelim. @@ -35,7 +36,7 @@ export const TenderCard = ({ tender }) => { {day} {monthYearFormatted} - {tender.saat} + {tender.saat || 'Saat doğrulanmalı'}