diff --git a/src/apps/copilots/src/pages/copilot-requests/CopilotRequestsPage.module.scss b/src/apps/copilots/src/pages/copilot-requests/CopilotRequestsPage.module.scss
index bde7159db..8c5108caa 100644
--- a/src/apps/copilots/src/pages/copilot-requests/CopilotRequestsPage.module.scss
+++ b/src/apps/copilots/src/pages/copilot-requests/CopilotRequestsPage.module.scss
@@ -27,3 +27,8 @@
display: block;
white-space: pre-wrap;
}
+
+.disabled {
+ opacity: 0.5;
+ pointer-events: none;
+}
diff --git a/src/apps/copilots/src/pages/copilot-requests/index.tsx b/src/apps/copilots/src/pages/copilot-requests/index.tsx
index 648b420fd..b61630075 100644
--- a/src/apps/copilots/src/pages/copilot-requests/index.tsx
+++ b/src/apps/copilots/src/pages/copilot-requests/index.tsx
@@ -1,6 +1,7 @@
import { FC, useCallback, useContext, useMemo } from 'react'
import { find } from 'lodash'
import { NavigateFunction, Params, useNavigate, useParams } from 'react-router-dom'
+import classNames from 'classnames'
import {
Button,
@@ -58,9 +59,15 @@ const CopilotTableActions: FC<{request: CopilotRequest}> = props => {
navigate(copilotRoutesMap.CopilotRequestDetails.replace(':requestId', `${props.request.id}`))
}, [navigate, props.request.id])
+ const isEditable = useMemo(() => !['canceled', 'fulfilled'].includes(props.request.status), [props.request.status])
+
const editRequest = useCallback(() => {
+ if (!isEditable) {
+ return
+ }
+
navigate(copilotRoutesMap.CopilotRequestEditForm.replace(':requestId', `${props.request.id}`))
- }, [navigate, props.request.id])
+ }, [navigate, props.request.id, isEditable])
const copilotOpportunityId = props.request.opportunity?.id
@@ -82,13 +89,20 @@ const CopilotTableActions: FC<{request: CopilotRequest}> = props => {