diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ChangeRequest/ReleasePlanChangeRequestDialog.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ChangeRequest/ReleasePlanChangeRequestDialog.tsx
index 5f6f2fe018..8a249302db 100644
--- a/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ChangeRequest/ReleasePlanChangeRequestDialog.tsx
+++ b/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ChangeRequest/ReleasePlanChangeRequestDialog.tsx
@@ -31,6 +31,10 @@ type ChangeRequestAction =
type: 'updateMilestoneProgression';
sourceMilestoneId: string;
payload: UpdateMilestoneProgressionSchema;
+ }
+ | {
+ type: 'deleteMilestoneProgression';
+ sourceMilestoneId: string;
};
interface IReleasePlanChangeRequestDialogProps {
@@ -134,6 +138,22 @@ export const ReleasePlanChangeRequestDialog = ({
);
}
+
+ case 'deleteMilestoneProgression': {
+ const milestone = releasePlan.milestones.find(
+ (milestone) => milestone.id === action.sourceMilestoneId,
+ );
+
+ return (
+
+ Remove automation that
+ progresses from{' '}
+ {milestone?.name} to
+ the next milestone in{' '}
+ {environmentId}
+
+ );
+ }
}
};
diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ReleasePlan.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ReleasePlan.tsx
index f84d4368e5..db220b3f89 100644
--- a/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ReleasePlan.tsx
+++ b/frontend/src/component/feature/FeatureView/FeatureOverview/ReleasePlan/ReleasePlan.tsx
@@ -132,6 +132,10 @@ export const ReleasePlan = ({
sourceMilestoneId: string;
payload: UpdateMilestoneProgressionSchema;
}
+ | {
+ type: 'deleteMilestoneProgression';
+ sourceMilestoneId: string;
+ }
| null
>(null);
const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId);
@@ -190,6 +194,16 @@ export const ReleasePlan = ({
},
});
break;
+
+ case 'deleteMilestoneProgression':
+ await addChange(projectId, environment, {
+ feature: featureName,
+ action: 'deleteMilestoneProgression',
+ payload: {
+ sourceMilestone: changeRequestAction.sourceMilestoneId,
+ },
+ });
+ break;
}
await refetchChangeRequests();
@@ -304,7 +318,14 @@ export const ReleasePlan = ({
};
const handleDeleteProgression = (milestone: IReleasePlanMilestone) => {
- setMilestoneToDeleteProgression(milestone);
+ if (isChangeRequestConfigured(environment)) {
+ setChangeRequestAction({
+ type: 'deleteMilestoneProgression',
+ sourceMilestoneId: milestone.id,
+ });
+ } else {
+ setMilestoneToDeleteProgression(milestone);
+ }
};
const handleCloseDeleteDialog = () => {
diff --git a/frontend/src/hooks/api/actions/useChangeRequestApi/useChangeRequestApi.ts b/frontend/src/hooks/api/actions/useChangeRequestApi/useChangeRequestApi.ts
index 6430ba9aa4..c23ca074a6 100644
--- a/frontend/src/hooks/api/actions/useChangeRequestApi/useChangeRequestApi.ts
+++ b/frontend/src/hooks/api/actions/useChangeRequestApi/useChangeRequestApi.ts
@@ -23,7 +23,8 @@ export interface IChangeSchema {
| 'deleteReleasePlan'
| 'startMilestone'
| 'createMilestoneProgression'
- | 'updateMilestoneProgression';
+ | 'updateMilestoneProgression'
+ | 'deleteMilestoneProgression';
payload: string | boolean | object | number | undefined;
}