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)) : [])