Fixed dshboard render crash

This commit is contained in:
2026-10-26 09:34:15 +02:00
parent bb77a4dc9a
commit f56cb70b55
5 changed files with 56 additions and 61 deletions
@@ -26,7 +26,10 @@ import {
import { EvidenceUploadModal } from './EvidenceUploadModal';
import { GovernanceInfoModal } from './GovernanceInfoModal';
import {
FolderKanban,
FolderKanban,
AlertTriangle,
ShieldAlert,
Scale,
ChevronDown,
ChevronUp,
Calendar,
@@ -66,6 +69,12 @@ interface ProjectCardProps {
item: EnrichedPartnerProject;
isExpanded?: boolean;
onToggleExpand?: () => void;
onUploadEvidence?: (target: any) => void;
onSubmitActivityForApproval?: (
activity: Activity,
milestone?: Milestone | null,
evidences?: Evidence[]
) => Promise<void>;
onOpenSecureFile: (type: 'contract' | 'evidence', id: string | number) => void;
}
@@ -226,6 +235,19 @@ export const ProjectCard: React.FC<ProjectCardProps> = ({
return new Date(a.dueAt || 0).getTime() - new Date(b.dueAt || 0).getTime();
});
// Requirement #5: Milestone and Project Late / At Risk calculations
const nowTime = Date.now();
const hasOverdueMilestone = effectiveMilestones.some(m => {
const d = m.dueAt ? new Date(m.dueAt).getTime() : null;
const fulfilled = Number(m.status) === ApprovalStatus.Approved;
return d !== null && d < nowTime && !fulfilled;
});
const hasAtRiskMilestone = !hasOverdueMilestone && effectiveMilestones.some(m => {
const d = m.dueAt ? new Date(m.dueAt).getTime() : null;
const fulfilled = Number(m.status) === ApprovalStatus.Approved;
return d !== null && d >= nowTime && (d - nowTime <= 3 * 24 * 60 * 60 * 1000) && !fulfilled;
});
const getEvidenceForActivity = (activityId: string | number): Evidence[] => {
const targetNum = toIntegerId(activityId);
return effectiveEvidence