import React from 'react'; import { useApp } from '../context/AppContext'; import { Star, MapPin, Clock, Tag, Package, Building2, AlertTriangle, Sparkles, CalendarDays, Megaphone } from 'lucide-react'; export const TenderCard = ({ tender }) => { const { toggleTrackTender, setActiveTenderDetail, favoriteKurumlar, favoriteSaving, toggleFavoriteKurum, kalemEslesen, searchQuery } = useApp(); // Aramada eşleşen kalemler öne alınır — firma kendi ürününü hemen görsün. const eslesenKalemler = (kalemEslesen && tender.ikn && kalemEslesen.get(tender.ikn)) || null; const isFavKurum = favoriteKurumlar?.includes((tender.kurum || '').trim()); const parsedDateMatch = /^(\d{2})\.(\d{2})\.(\d{4})(?:\s|$)/.exec(String(tender.tarih || '').trim()); const dateMatch = parsedDateMatch && (() => { const date = new Date(Number(parsedDateMatch[3]), Number(parsedDateMatch[2]) - 1, Number(parsedDateMatch[1])); return date.getFullYear() === Number(parsedDateMatch[3]) && date.getMonth() === Number(parsedDateMatch[2]) - 1 && date.getDate() === Number(parsedDateMatch[1]) ? parsedDateMatch : null; })(); 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. const ilanTarihiGoster = (() => { const v = tender.ilanTarihi; if (!v) return null; if (/^\d{4}-\d{2}-\d{2}/.test(v)) { const [y, a, g] = v.slice(0, 10).split('-'); return `${g}.${a}.${y}`; } return v; })(); return (
{eslesenKalemler ? 'Aramanızla eşleşen kalemler' : 'Teklif cetveli kalemleri'}
{(eslesenKalemler ? eslesenKalemler.slice(0, 3).map((k) => k) : (tender.kalemler || []).slice(0, 3).map((ad) => ({ ad })) ).map((k, idx) => (+ {tender.kalemSayisi - 3} kalem daha — tümünü gör
)}+ {tender.items.length - 3} malzeme kalemi daha...
)}