From 628110399c85abb5fedf4652c39075ad7c6285e2 Mon Sep 17 00:00:00 2001 From: chelsea-EYDS Date: Mon, 27 Jan 2025 14:38:21 -0800 Subject: [PATCH] recommitment field profile --- .../profile/details/RecommitmentDetails.tsx | 79 +++++++++++++------ 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/frontend/src/components/profile/details/RecommitmentDetails.tsx b/frontend/src/components/profile/details/RecommitmentDetails.tsx index f61a2d6b..9efd88ef 100644 --- a/frontend/src/components/profile/details/RecommitmentDetails.tsx +++ b/frontend/src/components/profile/details/RecommitmentDetails.tsx @@ -5,8 +5,9 @@ import DetailsSection from './DetailsSection'; import usePersonnel from '@/hooks/usePersonnel'; import { useRoleContext } from '@/providers'; import { datePST } from '@/utils'; -import { RecommitmentStatusLabel } from '@/common/enums/recommitment-status'; +import { RecommitmentStatus, RecommitmentStatusLabel } from '@/common/enums/recommitment-status'; import { useRecommitmentCycle } from '@/hooks/useRecommitment'; +import { Program, Recommitment, RecommitmentCycle } from '@/common'; export const RecommitmentDetails = () => { const { personnel } = usePersonnel(); @@ -14,12 +15,52 @@ export const RecommitmentDetails = () => { const { recommitmentCycle } = useRecommitmentCycle(); const [open, setOpen] = useState(true); - const recommitment = personnel?.recommitment?.find( + const recommitment: Recommitment | undefined = personnel?.recommitment?.find( (itm) => itm.program === program, ); const handleOpen = (open: boolean) => setOpen(!open); - + + if(!recommitment) return null; + const getFieldData = (recommitment: Recommitment, recommitmentCycle?: RecommitmentCycle) => { + switch(recommitment.status){ + case RecommitmentStatus.SUPERVISOR_APPROVED: + case RecommitmentStatus.SUPERVISOR_DENIED: + return { + supervisor: {title: "Supervisor", content: recommitment.supervisorIdir ? recommitment.supervisorIdir : personnel?.supervisorEmail}, + decisionDate: {title: "Date Recommitted", content: recommitment?.supervisorDecisionDate ? datePST(new Date(recommitment?.supervisorDecisionDate)):'--'}, + status: {title: "Status", content: RecommitmentStatusLabel[recommitment.status]}, + reason: {title: "Supervisor Reason", content: '--'}, + year: {title: "Upcoming Year", content: recommitmentCycle?.year}, + } + case RecommitmentStatus.MEMBER_DENIED: + return { + supervisor: {title: "Supervisor", content: recommitment.supervisorIdir ? recommitment.supervisorIdir : personnel?.supervisorEmail}, + decisionDate: {title: "Date Declined", content: recommitment?.memberDecisionDate ? datePST(new Date(recommitment?.memberDecisionDate)):'--'}, + status: {title: "Status", content: RecommitmentStatusLabel[recommitment.status]}, + reason: {title: "Member Reason", content: '--'}, + year: {title: "Upcoming Year", content: recommitmentCycle?.year}, + } + case RecommitmentStatus.MEMBER_NO_RESPONSE: + case RecommitmentStatus.SUPERVISOR_NO_RESPONSE: + return { + supervisor: {title: "Supervisor", content: recommitment.supervisorIdir ? recommitment.supervisorIdir : personnel?.supervisorEmail}, + decisionDate: {title: "Date Recommitted", content: '--'}, + status: {title: "Status", content: RecommitmentStatusLabel[recommitment.status]}, + reason: {title: "Reason (if declined/denied)", content: '--'}, + year: {title: "Upcoming Year", content: recommitmentCycle?.year}, + } + default: + return { + supervisor: {title: "Supervisor", content: recommitment.supervisorIdir ? recommitment.supervisorIdir : personnel?.supervisorEmail}, + decisionDate: {title: "Date Recommitted", content: '--'}, + status: {title: "Status", content: RecommitmentStatusLabel[recommitment.status]}, + reason: {title: "Reason (if declined/denied)", content: '--'}, + year: {title: "Upoming Year", content: recommitmentCycle?.year}, + } + } +} + const fieldData = getFieldData(recommitment, recommitmentCycle); return ( <>
@@ -53,38 +94,30 @@ export const RecommitmentDetails = () => { title={''} columns={[ { - title: 'Upcoming Year', - content: recommitmentCycle?.year ? ( -

{recommitmentCycle.year}

- ) : ( - '--' - ), + title: fieldData.year.title, + content: +

{fieldData.year.content}

+ }, { - title: 'Status', + title: fieldData.status.title, content: (

- { - RecommitmentStatusLabel[ - recommitment?.status as keyof typeof RecommitmentStatusLabel - ] - } + {fieldData.status.content}

), }, { - title: 'Date Recommitted', - content: recommitment?.supervisorDecisionDate - ? datePST(new Date(recommitment?.supervisorDecisionDate)) - : '--', + title: fieldData.decisionDate.title, + content:

{fieldData.decisionDate.content}

}, { - title: 'Declined By', - content: recommitment?.supervisorIdir ?? '--', + title: fieldData.supervisor.title, + content:

{fieldData.supervisor.content}

}, { - title: 'Reason for Declining', - content:

{recommitment?.supervisorReason ?? '--'}

, + title: fieldData.reason.title, + content:

{fieldData.reason.content}

, }, ]} />