1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-11-24 20:06:55 +01:00

feat: remove milestone progression adding when paused (#11012)

This commit is contained in:
Jaanus Sellin 2025-11-24 11:01:38 +02:00 committed by GitHub
parent 97a20b0929
commit d6af401dd2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 13 deletions

View File

@ -12,9 +12,8 @@ import { StyledActionButton } from './StyledActionButton.tsx';
interface MilestoneAutomationProps { interface MilestoneAutomationProps {
milestone: IReleasePlanMilestone; milestone: IReleasePlanMilestone;
milestones: IReleasePlanMilestone[];
status: MilestoneStatus; status: MilestoneStatus;
isNotLastMilestone: boolean;
nextMilestoneId: string;
milestoneProgressionsEnabled: boolean; milestoneProgressionsEnabled: boolean;
readonly: boolean | undefined; readonly: boolean | undefined;
isProgressionFormOpen: boolean; isProgressionFormOpen: boolean;
@ -30,9 +29,8 @@ interface MilestoneAutomationProps {
export const MilestoneAutomation = ({ export const MilestoneAutomation = ({
milestone, milestone,
milestones,
status, status,
isNotLastMilestone,
nextMilestoneId,
milestoneProgressionsEnabled, milestoneProgressionsEnabled,
readonly, readonly,
isProgressionFormOpen, isProgressionFormOpen,
@ -43,6 +41,13 @@ export const MilestoneAutomation = ({
onChangeProgression, onChangeProgression,
onDeleteProgression, onDeleteProgression,
}: MilestoneAutomationProps) => { }: MilestoneAutomationProps) => {
const milestoneIndex = milestones.findIndex((m) => m.id === milestone.id);
const isNotLastMilestone = milestoneIndex < milestones.length - 1;
const nextMilestoneId = milestones[milestoneIndex + 1]?.id || '';
const hasAnyPausedMilestone = milestones.some((milestone) =>
Boolean(milestone.pausedAt),
);
const showAutomation = const showAutomation =
milestoneProgressionsEnabled && isNotLastMilestone && !readonly; milestoneProgressionsEnabled && isNotLastMilestone && !readonly;
@ -89,7 +94,7 @@ export const MilestoneAutomation = ({
status={status} status={status}
badge={badge} badge={badge}
/> />
) : ( ) : hasAnyPausedMilestone ? null : (
<StyledActionButton <StyledActionButton
onClick={onOpenProgressionForm} onClick={onOpenProgressionForm}
color='primary' color='primary'

View File

@ -92,7 +92,6 @@ export const ReleasePlanMilestoneItem = ({
const isNotLastMilestone = index < milestones.length - 1; const isNotLastMilestone = index < milestones.length - 1;
const isProgressionFormOpen = progressionFormOpenIndex === index; const isProgressionFormOpen = progressionFormOpenIndex === index;
const nextMilestoneId = milestones[index + 1]?.id || '';
const handleOpenProgressionForm = () => const handleOpenProgressionForm = () =>
onSetProgressionFormOpenIndex(index); onSetProgressionFormOpenIndex(index);
const handleCloseProgressionForm = () => const handleCloseProgressionForm = () =>
@ -166,15 +165,11 @@ export const ReleasePlanMilestoneItem = ({
const { pendingProgressionChange, effectiveTransitionCondition } = const { pendingProgressionChange, effectiveTransitionCondition } =
getPendingProgressionData(milestone, getPendingProgressionChange); getPendingProgressionData(milestone, getPendingProgressionChange);
const shouldShowAutomation = const automationSection = (
isNotLastMilestone && milestoneProgressionsEnabled && !readonly;
const automationSection = shouldShowAutomation ? (
<MilestoneAutomation <MilestoneAutomation
milestone={milestone} milestone={milestone}
milestones={milestones}
status={status} status={status}
isNotLastMilestone={isNotLastMilestone}
nextMilestoneId={nextMilestoneId}
milestoneProgressionsEnabled={milestoneProgressionsEnabled} milestoneProgressionsEnabled={milestoneProgressionsEnabled}
readonly={readonly} readonly={readonly}
isProgressionFormOpen={isProgressionFormOpen} isProgressionFormOpen={isProgressionFormOpen}
@ -185,7 +180,7 @@ export const ReleasePlanMilestoneItem = ({
onChangeProgression={handleChangeProgression} onChangeProgression={handleChangeProgression}
onDeleteProgression={onDeleteProgression} onDeleteProgression={onDeleteProgression}
/> />
) : undefined; );
return ( return (
<div key={milestone.id}> <div key={milestone.id}>