diff --git a/src/apps/copilots/src/models/CopilotApplication.ts b/src/apps/copilots/src/models/CopilotApplication.ts index eccb95729..a501980a2 100644 --- a/src/apps/copilots/src/models/CopilotApplication.ts +++ b/src/apps/copilots/src/models/CopilotApplication.ts @@ -12,4 +12,5 @@ export interface CopilotApplication { handle?: string, userId: number, status: CopilotApplicationStatus, + opportunityStatus: string, } diff --git a/src/apps/copilots/src/pages/copilot-opportunity-details/index.tsx b/src/apps/copilots/src/pages/copilot-opportunity-details/index.tsx index d623398de..d961895e5 100644 --- a/src/apps/copilots/src/pages/copilot-opportunity-details/index.tsx +++ b/src/apps/copilots/src/pages/copilot-opportunity-details/index.tsx @@ -223,9 +223,10 @@ const CopilotOpportunityDetails: FC<{}> = () => { ) } {activeTab === CopilotDetailsTabViews.details && } - {activeTab === CopilotDetailsTabViews.applications && isAdminOrPM && ( + {activeTab === CopilotDetailsTabViews.applications && isAdminOrPM && opportunity && ( )} diff --git a/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx b/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx index d57feb794..836678036 100644 --- a/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx +++ b/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx @@ -19,7 +19,11 @@ const CopilotApplicationAction = ( [allCopilotApplications], ) const onClick = useCallback(async () => { - if (copilotApplication.status !== CopilotApplicationStatus.PENDING || isInvited) { + if ( + copilotApplication.status !== CopilotApplicationStatus.PENDING + || isInvited + || copilotApplication.opportunityStatus !== 'active' + ) { return } @@ -46,7 +50,9 @@ const CopilotApplicationAction = ( } { - !isInvited && copilotApplication.status === CopilotApplicationStatus.PENDING && ( + !isInvited + && copilotApplication.status === CopilotApplicationStatus.PENDING + && copilotApplication.opportunityStatus === 'active' && ( ) } diff --git a/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplications.tsx b/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplications.tsx index bdb8690b3..0ddc3f689 100644 --- a/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplications.tsx +++ b/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplications.tsx @@ -2,6 +2,7 @@ import { FC, useMemo } from 'react' import { Table, TableColumn } from '~/libs/ui' import { USER_PROFILE_URL } from '~/config/environments/default.env' +import { CopilotOpportunity } from '~/apps/copilots/src/models/CopilotOpportunity' import { CopilotApplication } from '../../../../models/CopilotApplication' import { FormattedMembers } from '../../../../services/members' @@ -70,6 +71,7 @@ const tableColumns: TableColumn[] = [ const CopilotApplications: FC<{ copilotApplications?: CopilotApplication[] members?: FormattedMembers[] + opportunity: CopilotOpportunity }> = props => { const getData = (): CopilotApplication[] => (props.copilotApplications ? props.copilotApplications.map(item => { const member = props.members && props.members.find(each => each.userId === item.userId) @@ -78,6 +80,7 @@ const CopilotApplications: FC<{ activeProjects: member?.activeProjects || 0, fulfilment: member?.copilotFulfillment || 0, handle: member?.handle, + opportunityStatus: props.opportunity.status, } }) .sort((a, b) => (b.fulfilment || 0) - (a.fulfilment || 0)) : [])