diff --git a/app/soapbox/features/compose/components/poll_form.js b/app/soapbox/features/compose/components/poll_form.js index efbaa3e19..f0db95f44 100644 --- a/app/soapbox/features/compose/components/poll_form.js +++ b/app/soapbox/features/compose/components/poll_form.js @@ -38,6 +38,8 @@ class Option extends React.PureComponent { onSuggestionSelected: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, maxChars: PropTypes.number.isRequired, + onRemovePoll: PropTypes.func.isRequired, + numOptions: PropTypes.number.isRequired, }; handleOptionTitleChange = e => { @@ -45,10 +47,12 @@ class Option extends React.PureComponent { }; handleOptionRemove = () => { - this.props.onRemove(this.props.index); + if (this.props.numOptions > 2) + this.props.onRemove(this.props.index); + else + this.props.onRemovePoll(); }; - handleToggleMultiple = e => { this.props.onToggleMultiple(); e.preventDefault(); @@ -95,7 +99,7 @@ class Option extends React.PureComponent {
- +
); @@ -156,6 +160,7 @@ class PollForm extends ImmutablePureComponent { isPollMultiple={isMultiple} onToggleMultiple={this.handleToggleMultiple} maxChars={maxOptionChars} + numOptions={options.size} {...other} /> ))} diff --git a/app/soapbox/features/compose/containers/poll_form_container.js b/app/soapbox/features/compose/containers/poll_form_container.js index dfb3a1af2..9e3cb3c43 100644 --- a/app/soapbox/features/compose/containers/poll_form_container.js +++ b/app/soapbox/features/compose/containers/poll_form_container.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; import PollForm from '../components/poll_form'; -import { addPollOption, removePollOption, changePollOption, changePollSettings } from '../../../actions/compose'; +import { addPollOption, removePollOption, changePollOption, changePollSettings, removePoll } from '../../../actions/compose'; import { clearComposeSuggestions, fetchComposeSuggestions, @@ -43,6 +43,10 @@ const mapDispatchToProps = dispatch => ({ dispatch(selectComposeSuggestion(position, token, accountId, path)); }, + onRemovePoll() { + dispatch(removePoll()); + }, + }); export default connect(mapStateToProps, mapDispatchToProps)(PollForm);