feat: demo özelliklerini gerçekleştir — canlı veri + localStorage
- analytics.js: firmStats/itemStats/provinceDensity (gerçek hesaplama) - Rakip Radar: canlı veriden kazanan firma analizi (mock 3 firma kaldırıldı) - Fiyat Analizi: gerçek kalem min/medyan/ort/maks + CSV export - TurkeyHeatMap: 81 il gerçek interaktif yoğunluk haritası (tıkla→filtrele) - Favori kurumlar: kart yıldızı + hızlı filtre (localStorage) - Ekip yönetimi: gerçek CRUD (RightSidebar) + Kanban ataması ekipten - Bildirimler: gerçek Notification API + izin + test + sessiz saatler - PDF: jsPDF ile gerçek birim fiyat teklif cetveli (kaşe/imza alanı)
This commit is contained in:
@@ -3,7 +3,8 @@ import { useApp } from '../context/AppContext';
|
||||
import { Star, MapPin, Clock, Tag, Package, Building2, AlertTriangle, Sparkles } from 'lucide-react';
|
||||
|
||||
export const TenderCard = ({ tender }) => {
|
||||
const { toggleTrackTender, setActiveTenderDetail } = useApp();
|
||||
const { toggleTrackTender, setActiveTenderDetail, favoriteKurumlar, toggleFavoriteKurum } = useApp();
|
||||
const isFavKurum = favoriteKurumlar?.includes((tender.kurum || '').trim());
|
||||
|
||||
const [day, monthYear] = tender.tarih ? tender.tarih.split('.') : ['01', '01.2026'];
|
||||
const monthYearFormatted = monthYear ? `${monthYear}` : '08.2026';
|
||||
@@ -62,6 +63,13 @@ export const TenderCard = ({ tender }) => {
|
||||
<span className="flex items-center gap-1 text-slate-700 font-semibold truncate max-w-md">
|
||||
<Building2 className="w-3.5 h-3.5 text-slate-400 shrink-0" />
|
||||
<span className="truncate">{tender.kurum}</span>
|
||||
<button
|
||||
onClick={(e) => { e.stopPropagation(); toggleFavoriteKurum(tender.kurum); }}
|
||||
title={isFavKurum ? 'Favori kurumdan çıkar' : 'Kurumu favorilere ekle'}
|
||||
className="shrink-0 p-0.5"
|
||||
>
|
||||
<Star className={`w-3.5 h-3.5 ${isFavKurum ? 'text-amber-500 fill-amber-500' : 'text-slate-300 hover:text-amber-400'}`} />
|
||||
</button>
|
||||
</span>
|
||||
<span className="flex items-center gap-1 text-slate-600">
|
||||
<MapPin className="w-3.5 h-3.5 text-rose-500 shrink-0" />
|
||||
|
||||
Reference in New Issue
Block a user