import React,{useEffect,useState} from 'react'; import {listDocuments} from '../services/account'; import {preparationSummary} from '../services/preparationSummary'; import {useApp} from '../context/AppContext'; import {getToken} from '../services/auth'; export function PreparationOverview({tenders,now}) { const {authUser}=useApp(); return ; } function Overview({tenders,now}) { const {setActiveTenderDetail,userProfile}=useApp(); const [vault,setVault]=useState({loading:true,error:null,documents:[]}),[refresh,setRefresh]=useState(0); useEffect(()=>{ let cancelled=false; setVault({loading:true,error:null,documents:[]}); listDocuments().then(data=>{ if (!Array.isArray(data?.belgeler)) throw new Error('Belge listesi biçimi doğrulanamadı.'); if(!cancelled)setVault({loading:false,error:null,documents:data.belgeler}); }) .catch(error=>{if(!cancelled)setVault({loading:false,error:error.message,documents:[]});}); return()=>{cancelled=true;}; },[refresh]); const open=(tender,target)=>setActiveTenderDetail({...tender,preparationTarget:target}); return

Hazırlık dosyaları · {tenders.length}

Panodaki ve sorumlu filtresindeki kayıtlı taslaklar gösterilir. Kaydetmediğiniz değişiklikler bu özete girmez. Eksik sayısı başvuru onayı değildir; çıktı sırasında belgeler yeniden kontrol edilir.

{vault.loading&&

Belge durumu kontrol ediliyor…

} {vault.error&&

Belge durumu doğrulanamadı: {vault.error}

} {!tenders.length ?

İhaleyi takibe alın veya hazırlık görevi açın; dosyası burada görünsün.

:
{tenders.map(tender=>{ const summary=preparationSummary(tender,{...vault,healthPortfolio:userProfile.scrapedCapabilities?.healthPortfolio || []},now); return ; })}
Hazırlık dosyaları, sorumlular ve sıradaki kontroller
İhaleSorumluBelge eksikleriSıradaki kontrol

{summary.issues.length ? `${summary.issues.length} kontrol eksik` : 'Kayıtlı kontroller tamam; son kontrol gerekli'}

{summary.owner}
{summary.documentIssues.length ? `${summary.documentIssues.length} belge kontrolü` : 'Kayıtlı belgelerde eksik bulunmadı'}
    {summary.documentIssues.map((text,i)=>
  • )}
Tüm eksikleri göster
    {summary.issues.map((item,i)=>
  • )}
}
; }