diff --git a/src/apps/copilots/src/models/CopilotApplication.ts b/src/apps/copilots/src/models/CopilotApplication.ts index bc380489c..b69d42864 100644 --- a/src/apps/copilots/src/models/CopilotApplication.ts +++ b/src/apps/copilots/src/models/CopilotApplication.ts @@ -20,4 +20,5 @@ export interface CopilotApplication { opportunityStatus: string, existingMembership?: ExistingMembership, projectName: string, + onApplied: () => void, } 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 fe6197196..aae03070f 100644 --- a/src/apps/copilots/src/pages/copilot-opportunity-details/index.tsx +++ b/src/apps/copilots/src/pages/copilot-opportunity-details/index.tsx @@ -296,6 +296,7 @@ const CopilotOpportunityDetails: FC<{}> = () => { copilotApplications={copilotApplications} opportunity={opportunity} members={members} + onApplied={onApplied} /> )} 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 a405e2037..57ec62724 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 @@ -1,9 +1,8 @@ import { useParams } from 'react-router-dom' import { toast } from 'react-toastify' -import { mutate } from 'swr' import { useCallback, useMemo, useState } from 'react' -import { assignCopilotOpportunity, copilotBaseUrl } from '~/apps/copilots/src/services/copilot-opportunities' +import { assignCopilotOpportunity } from '~/apps/copilots/src/services/copilot-opportunities' import { CopilotApplication, CopilotApplicationStatus } from '~/apps/copilots/src/models/CopilotApplication' import { IconSolid, Tooltip } from '~/libs/ui' @@ -38,8 +37,8 @@ const CopilotApplicationAction = ( if (opportunityId) { try { await assignCopilotOpportunity(opportunityId, copilotApplication.id) - toast.success('Invited a copilot') - mutate(`${copilotBaseUrl}/copilots/opportunity/${opportunityId}/applications`) + toast.success('Accepted as copilot') + copilotApplication.onApplied() } catch (e) { const error = e as Error toast.error(error.message) @@ -56,7 +55,7 @@ const CopilotApplicationAction = ( await assignCopilotOpportunity(opportunityId, copilotApplication.id) toast.success('Accepted as copilot') - mutate(`${copilotBaseUrl}/copilots/opportunity/${opportunityId}/applications`) + copilotApplication.onApplied() setShowAlreadyMemberModal(false) } catch (e) { const error = e as Error @@ -84,7 +83,7 @@ const CopilotApplicationAction = ( !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 f7c40b060..aef307c04 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 @@ -77,6 +77,7 @@ const CopilotApplications: FC<{ copilotApplications?: CopilotApplication[] members?: FormattedMembers[] opportunity: CopilotOpportunity + onApplied: () => void }> = props => { const getData = (): CopilotApplication[] => (props.copilotApplications ? props.copilotApplications.map(item => { const member = props.members && props.members.find(each => each.userId === item.userId) @@ -85,6 +86,7 @@ const CopilotApplications: FC<{ activeProjects: member?.activeProjects || 0, fulfilment: member?.copilotFulfillment || 0, handle: member?.handle, + onApplied: props.onApplied, opportunityStatus: props.opportunity.status, pastProjects: member?.pastProjects || 0, projectName: props.opportunity.projectName,