fix: avoid fabricated dates on tender cards
This commit is contained in:
@@ -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.
|
- 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.
|
- 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.
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ export const TenderCard = ({ tender }) => {
|
|||||||
const eslesenKalemler = (kalemEslesen && tender.ikn && kalemEslesen.get(tender.ikn)) || null;
|
const eslesenKalemler = (kalemEslesen && tender.ikn && kalemEslesen.get(tender.ikn)) || null;
|
||||||
const isFavKurum = favoriteKurumlar?.includes((tender.kurum || '').trim());
|
const isFavKurum = favoriteKurumlar?.includes((tender.kurum || '').trim());
|
||||||
|
|
||||||
const [day, monthYear] = tender.tarih ? tender.tarih.split('.') : ['01', '01.2026'];
|
const dateMatch = /^(\d{2})\.(\d{2})\.(\d{4})(?:\s|$)/.exec(String(tender.tarih || '').trim());
|
||||||
const monthYearFormatted = monthYear ? `${monthYear}` : '08.2026';
|
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:
|
// İ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.
|
// canlı akış ISO (2026-08-30), DT/arşiv gg.aa.yyyy. İkisini de gösterebilelim.
|
||||||
@@ -35,7 +36,7 @@ export const TenderCard = ({ tender }) => {
|
|||||||
<span className="text-3xl font-black tracking-tight text-blue-700 leading-none">{day}</span>
|
<span className="text-3xl font-black tracking-tight text-blue-700 leading-none">{day}</span>
|
||||||
<span className="text-xs font-bold text-blue-900/80 mt-0.5">{monthYearFormatted}</span>
|
<span className="text-xs font-bold text-blue-900/80 mt-0.5">{monthYearFormatted}</span>
|
||||||
<span className="text-[11px] font-semibold bg-white/80 px-2 py-0.5 rounded-full text-blue-800 mt-2 border border-blue-200">
|
<span className="text-[11px] font-semibold bg-white/80 px-2 py-0.5 rounded-full text-blue-800 mt-2 border border-blue-200">
|
||||||
{tender.saat}
|
{tender.saat || 'Saat doğrulanmalı'}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user