import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { Textfield } from 'react-mdl'; import Select from '../../common/select'; import StrategyInputPercentage from './strategy-input-percentage'; const stickinessOptions = [ { key: 'default', label: 'default' }, { key: 'userId', label: 'userId' }, { key: 'sessionId', label: 'sessionId' }, { key: 'random', label: 'random' }, ]; export default class FlexibleRolloutStrategy extends Component { static propTypes = { strategy: PropTypes.object.isRequired, featureToggleName: PropTypes.string.isRequired, updateStrategy: PropTypes.func.isRequired, handleConfigChange: PropTypes.func.isRequired, }; // eslint-disable-next-line camelcase UNSAFE_componentWillMount() { const { strategy, featureToggleName } = this.props; if (!strategy.parameters.rollout) { this.setConfig('rollout', 100); } if (!strategy.parameters.stickiness) { this.setConfig('stickiness', 'default'); } if (!strategy.parameters.groupId) { this.setConfig('groupId', featureToggleName); } } setConfig = (key, value) => { const parameters = this.props.strategy.parameters || {}; parameters[key] = value; const updatedStrategy = Object.assign({}, this.props.strategy, { parameters, }); this.props.updateStrategy(updatedStrategy); }; render() { const { strategy, handleConfigChange } = this.props; const rollout = strategy.parameters.rollout; const stickiness = strategy.parameters.stickiness; const groupId = strategy.parameters.groupId; return (

Rollout
handleConfigChange('rollout', evt)} />