import type { FormikProps } from 'formik'; import React from 'react'; import type { IWizardPageComponent } from '@spinnaker/core'; import { AvailabilityZoneSelector } from '../../../AvailabilityZoneSelector'; import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service'; export interface IServerGroupZonesProps { formik: FormikProps; } export class ServerGroupZones extends React.Component implements IWizardPageComponent { public validate(values: IAmazonServerGroupCommand) { const errors = {} as any; if (!values.availabilityZones || values.availabilityZones.length === 0) { errors.availabilityZones = 'You must select at least one availability zone.'; } return errors; } private handleAvailabilityZonesChanged = (zones: string[]): void => { const { values, setFieldValue } = this.props.formik; values.usePreferredZonesChanged(values); setFieldValue('availabilityZones', zones); }; private rebalanceToggled = () => { const { values, setFieldValue } = this.props.formik; values.toggleSuspendedProcess(values, 'AZRebalance'); setFieldValue('suspendedProcesses', values.suspendedProcesses); this.setState({}); }; public render() { const { values } = this.props.formik; return (
AZ Rebalance
); } }