import { useDeadlineClock } from '../hooks/useDeadlineClock'; import React, { useMemo } from 'react'; import { CalendarClock } from 'lucide-react'; import { useApp } from '../context/AppContext'; import { deadlineInfo } from '../services/tenderCalendar'; /** * Sağ panel: takipteki / panodaki ihalelerden 14 gün içinde yapılacaklar. * Sunucuya gitmez — liste zaten bellekte. ≤3 gün kırmızı, ≤7 turuncu. */ export const YaklasanSonTarihler = ({ gun = 14 }) => { const now = useDeadlineClock(); const { tenders, setActiveTenderDetail } = useApp(); const liste = useMemo(() => { return tenders .filter(t => t.takipte || t.gorev) .map(t => ({t,info:deadlineInfo(t,now)})) .filter(({info}) => info.days !== null && info.days >= 0 && info.days <= gun && info.expired !== true) .sort((a,b) => a.info.days - b.info.days || (a.info.deadline?.getTime() || Infinity) - (b.info.deadline?.getTime() || Infinity)) .map(({t,info}) => ({t,kalan:info.days,label:info.label})) .slice(0, 8); }, [tenders, gun, now]); const renk = (g) => (g <= 3 ? 'bg-red-600 text-white' : g <= 7 ? 'bg-amber-500 text-white' : 'bg-slate-200 text-slate-800'); return (
Yaklaşan İhale Tarihleri
{liste.length === 0 ? (

{gun} gün içinde yapılacak takipli ihale yok. Yıldızla takibe alın; burada geri sayım başlar.

) : liste.map(({ t, kalan, label }) => ( ))}
); };