1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-10-27 11:02:16 +01:00

feat: delete milestone progression with CR (#10828)

This commit is contained in:
Mateusz Kwasniewski 2025-10-17 14:49:03 +02:00 committed by GitHub
parent c8ca11aebb
commit 0fda3e7cf1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 44 additions and 2 deletions

View File

@ -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 = ({
</p>
);
}
case 'deleteMilestoneProgression': {
const milestone = releasePlan.milestones.find(
(milestone) => milestone.id === action.sourceMilestoneId,
);
return (
<p>
<StyledBoldSpan>Remove</StyledBoldSpan> automation that
progresses from{' '}
<StyledBoldSpan>{milestone?.name}</StyledBoldSpan> to
the next milestone in{' '}
<StyledBoldSpan>{environmentId}</StyledBoldSpan>
</p>
);
}
}
};

View File

@ -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) => {
if (isChangeRequestConfigured(environment)) {
setChangeRequestAction({
type: 'deleteMilestoneProgression',
sourceMilestoneId: milestone.id,
});
} else {
setMilestoneToDeleteProgression(milestone);
}
};
const handleCloseDeleteDialog = () => {

View File

@ -23,7 +23,8 @@ export interface IChangeSchema {
| 'deleteReleasePlan'
| 'startMilestone'
| 'createMilestoneProgression'
| 'updateMilestoneProgression';
| 'updateMilestoneProgression'
| 'deleteMilestoneProgression';
payload: string | boolean | object | number | undefined;
}