import React, { useState, useMemo } from 'react'; import { useApp } from '../../context/AppContext'; import { Radar, Bell, Plus, ShieldAlert, Award, FileText, CheckCircle2, Trash2, ArrowRight, TrendingUp } from 'lucide-react'; import confetti from 'canvas-confetti'; import { firmStats, formatTL } from '../../services/analytics'; export const CompetitorRadar = () => { const { competitorWatchlist, setCompetitorWatchlist, setActiveTab, tenders } = useApp(); const [newCompetitorName, setNewCompetitorName] = useState(''); const [newSector, setNewSector] = useState('Medikal & Tıbbi Malzeme'); // Gerçek kazanan-firma analizi (canlı veriden) const { firms, awardCount, totalMarket } = useMemo(() => firmStats(tenders), [tenders]); const watched = new Set(competitorWatchlist.map((c) => c.name.trim().toLocaleLowerCase('tr-TR'))); const addFromReal = (f) => { if (watched.has(f.name.trim().toLocaleLowerCase('tr-TR'))) return; setCompetitorWatchlist((prev) => [ { id: 'cw-' + Date.now(), name: f.name, sector: f.sectors[0] || 'Genel', winCount: f.wins, totalRevenue: f.total, marketShare: f.share, status: 'Aktif İzleniyor', alertOnBid: true, alertOnWin: true }, ...prev, ]); confetti({ particleCount: 40 }); }; const handleAddCompetitor = (e) => { e.preventDefault(); if (!newCompetitorName.trim()) return; const newComp = { id: 'cw-' + Date.now(), name: newCompetitorName, sector: newSector, winCount: 0, totalRevenue: 0, marketShare: 5, status: 'Aktif İzleniyor', alertOnBid: true, alertOnWin: true }; setCompetitorWatchlist(prev => [newComp, ...prev]); setNewCompetitorName(''); confetti({ particleCount: 50 }); }; const toggleAlert = (id, field) => { setCompetitorWatchlist(prev => prev.map(c => c.id === id ? { ...c, [field]: !c[field] } : c)); }; const removeCompetitor = (id) => { setCompetitorWatchlist(prev => prev.filter(c => c.id !== id)); }; return (
{/* Header Banner */}

Rakip Radar & Proaktif İhale Uyarısı

Proaktif Takip

İzlemeye aldığınız rakip firmalar ihaleye teklif verdiğinde veya kazandığında anında SMS ve Push bildirimi alın.

{/* GERÇEK: Piyasadaki Kazanan Firmalar (canlı veriden hesaplanır) */}

Kazanan Firma Analizi — Canlı Veri

{awardCount} sonuçlanmış ihale · toplam {formatTL(totalMarket)}
{firms.length === 0 ? (
Henüz kazanan firma verisi birikmedi. Doğrudan temin / sonuç ilanları geldikçe bu tablo gerçek kazanan firmalar ve sözleşme tutarlarıyla otomatik dolar.
) : (
{firms.slice(0, 12).map((f, i) => (
{i + 1} {f.name}
🏆 {f.wins} ihale · 💰 {formatTL(f.total)} {f.share ? `· %${f.share} pay` : ''} {f.sectors[0] ? `· ${f.sectors[0]}` : ''}
))}
)}
{/* Add New Competitor Form */}
setNewCompetitorName(e.target.value)} placeholder="Örn: ABC Medikal Sanayi ve Ticaret A.Ş." className="w-full bg-slate-50 border border-slate-300 rounded-xl px-4 py-2.5 text-xs font-semibold text-slate-900 focus:ring-2 focus:ring-indigo-500" />
{/* Tracked Competitors Table */}

Takipteki Rakip Firmalar ({competitorWatchlist.length})

Otomatik bildirimler aktif
{competitorWatchlist.map((comp) => (
{/* Info */}

{comp.name}

{comp.sector}
🏆 Kazandığı İhale: {comp.winCount} 💰 Toplam Hacim: ₺{(comp.totalRevenue / 1000000).toFixed(1)}M 📊 Tahmini Pazar Payı: %{comp.marketShare}
{/* Notification Toggles & Actions */}
))}
); };