Resolved reply recipient userId from TenantUsers and enabled Beneficiary compliance exploration modal

This commit is contained in:
2026-10-26 10:02:14 +02:00
parent f56cb70b55
commit 155a379ab4
5 changed files with 355 additions and 50 deletions
@@ -101,7 +101,7 @@ export const ProjectCard: React.FC<ProjectCardProps> = ({
project: Project;
milestone?: Milestone | null;
activity?: Activity | null;
initialTab?: 'compliance' | 'risks' | 'rules';
initialTab?: 'compliance' | 'beneficiaries' | 'risks' | 'rules';
} | null>(null);
const { project, award, contract, fundingOrganisation, invitedOrganisation, disbursements } = item;
@@ -335,7 +335,11 @@ export const ProjectCard: React.FC<ProjectCardProps> = ({
{/* Requirement #6: Informational Compliance & Risk Modal Trigger */}
<button
type="button"
onClick={() => setGovernanceTarget({ project, initialTab: 'compliance' })}
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
setGovernanceTarget({ project, initialTab: 'compliance' });
}}
className="inline-flex items-center gap-1.5 px-3 py-1 rounded-lg bg-white/[0.04] hover:bg-white/[0.08] border border-white/10 text-[11px] font-medium text-slate-300 hover:text-white transition-colors cursor-pointer"
title="View Project Compliance, Risks & Institutional Rules"
>
@@ -617,7 +621,11 @@ export const ProjectCard: React.FC<ProjectCardProps> = ({
{/* Requirement #6: Milestone level Rules & Risks trigger */}
<button
type="button"
onClick={() => setGovernanceTarget({ project, milestone, initialTab: 'rules' })}
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
setGovernanceTarget({ project, milestone, initialTab: 'rules' });
}}
className="inline-flex items-center gap-1 px-2 py-0.5 rounded-md bg-white/[0.04] hover:bg-white/[0.08] text-[10px] font-medium text-slate-400 hover:text-white transition-colors cursor-pointer border border-white/5"
title="View Milestone Rules and Risk Guidance"
>
@@ -929,6 +937,18 @@ export const ProjectCard: React.FC<ProjectCardProps> = ({
}}
/>
)}
{/* COMPLIANCE & RISKS INFORMATIONAL MODAL (Requirement #6) */}
{governanceTarget && (
<GovernanceInfoModal
isOpen={true}
onClose={() => setGovernanceTarget(null)}
project={governanceTarget.project}
milestone={governanceTarget.milestone}
activity={governanceTarget.activity}
initialTab={governanceTarget.initialTab}
/>
)}
</div>
);
};