diff --git a/packages/core/src/deploymentStrategy/strategies/redblack/AdditionalFields.tsx b/packages/core/src/deploymentStrategy/strategies/redblack/AdditionalFields.tsx index 1142429eb42..b243a78d22c 100644 --- a/packages/core/src/deploymentStrategy/strategies/redblack/AdditionalFields.tsx +++ b/packages/core/src/deploymentStrategy/strategies/redblack/AdditionalFields.tsx @@ -8,72 +8,101 @@ export interface IRedBlackStrategyAdditionalFieldsProps extends IDeploymentStrat command: IRedBlackCommand; } -export const AdditionalFields = ({ command, onChange }: IRedBlackStrategyAdditionalFieldsProps) => ( -
-
- -
-
- -
-
- - onChange('maxRemainingAsgs', e.target.value)} - min="2" - /> -
-
- - onChange('delayBeforeDisableSec', e.target.value)} - placeholder="0" - /> - seconds -
- {command.scaleDown && ( -
- - onChange('delayBeforeScaleDownSec', e.target.value)} - placeholder="0" - /> - seconds +export class AdditionalFields extends React.Component { + private rollbackOnFailureChange = (e: React.ChangeEvent) => { + this.props.command.rollback.onFailure = e.target.checked; + this.forceUpdate(); + }; + + private scaleDownChange = (e: React.ChangeEvent) => { + this.props.command.scaleDown = e.target.checked; + this.forceUpdate(); + }; + + private maxRemainingAsgsChange = (e: React.ChangeEvent) => { + this.props.command.maxRemainingAsgs = parseInt(e.target.value, 10); + this.forceUpdate(); + }; + + private delayBeforeDisableSecChange = (e: React.ChangeEvent) => { + this.props.command.delayBeforeDisableSec = parseInt(e.target.value, 10); + this.forceUpdate(); + }; + + private delayBeforeScaleDownSecChange = (e: React.ChangeEvent) => { + this.props.command.delayBeforeScaleDownSec = parseInt(e.target.value, 10); + this.forceUpdate(); + }; + + public render() { + const { command } = this.props; + return ( +
+
+ +
+
+ +
+
+ + +
+
+ + + seconds +
+ {command.scaleDown && ( +
+ + + seconds +
+ )}
- )} -
-); + ); + } +}