Merge branch 'blank-poll-removal' into 'develop'
Enable empty poll removal by deleting one of its options Closes #317 See merge request soapbox-pub/soapbox-fe!217
This commit is contained in:
commit
2583dc2e52
|
@ -38,6 +38,8 @@ class Option extends React.PureComponent {
|
||||||
onSuggestionSelected: PropTypes.func.isRequired,
|
onSuggestionSelected: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
maxChars: PropTypes.number.isRequired,
|
maxChars: PropTypes.number.isRequired,
|
||||||
|
onRemovePoll: PropTypes.func.isRequired,
|
||||||
|
numOptions: PropTypes.number.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleOptionTitleChange = e => {
|
handleOptionTitleChange = e => {
|
||||||
|
@ -45,10 +47,12 @@ class Option extends React.PureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
handleOptionRemove = () => {
|
handleOptionRemove = () => {
|
||||||
|
if (this.props.numOptions > 2)
|
||||||
this.props.onRemove(this.props.index);
|
this.props.onRemove(this.props.index);
|
||||||
|
else
|
||||||
|
this.props.onRemovePoll();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
handleToggleMultiple = e => {
|
handleToggleMultiple = e => {
|
||||||
this.props.onToggleMultiple();
|
this.props.onToggleMultiple();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -95,7 +99,7 @@ class Option extends React.PureComponent {
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<div className='poll__cancel'>
|
<div className='poll__cancel'>
|
||||||
<IconButton disabled={index <= 1} title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />
|
<IconButton title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
|
@ -156,6 +160,7 @@ class PollForm extends ImmutablePureComponent {
|
||||||
isPollMultiple={isMultiple}
|
isPollMultiple={isMultiple}
|
||||||
onToggleMultiple={this.handleToggleMultiple}
|
onToggleMultiple={this.handleToggleMultiple}
|
||||||
maxChars={maxOptionChars}
|
maxChars={maxOptionChars}
|
||||||
|
numOptions={options.size}
|
||||||
{...other}
|
{...other}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import PollForm from '../components/poll_form';
|
import PollForm from '../components/poll_form';
|
||||||
import { addPollOption, removePollOption, changePollOption, changePollSettings } from '../../../actions/compose';
|
import { addPollOption, removePollOption, changePollOption, changePollSettings, removePoll } from '../../../actions/compose';
|
||||||
import {
|
import {
|
||||||
clearComposeSuggestions,
|
clearComposeSuggestions,
|
||||||
fetchComposeSuggestions,
|
fetchComposeSuggestions,
|
||||||
|
@ -43,6 +43,10 @@ const mapDispatchToProps = dispatch => ({
|
||||||
dispatch(selectComposeSuggestion(position, token, accountId, path));
|
dispatch(selectComposeSuggestion(position, token, accountId, path));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onRemovePoll() {
|
||||||
|
dispatch(removePoll());
|
||||||
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(mapStateToProps, mapDispatchToProps)(PollForm);
|
export default connect(mapStateToProps, mapDispatchToProps)(PollForm);
|
||||||
|
|
Loading…
Reference in New Issue