Fix Poll fetchPoll action not being debounced. (#13485)
* Fix Poll fetchPoll action not being debounced. * Fix unused import in the Poll component
This commit is contained in:
		
							parent
							
								
									04c8d825f6
								
							
						
					
					
						commit
						ab8d7c0680
					
				
					 2 changed files with 17 additions and 3 deletions
				
			
		| 
						 | 
					@ -4,7 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
import { vote, fetchPoll } from 'mastodon/actions/polls';
 | 
					import { vote } from 'mastodon/actions/polls';
 | 
				
			||||||
import Motion from 'mastodon/features/ui/util/optional_motion';
 | 
					import Motion from 'mastodon/features/ui/util/optional_motion';
 | 
				
			||||||
import spring from 'react-motion/lib/spring';
 | 
					import spring from 'react-motion/lib/spring';
 | 
				
			||||||
import escapeTextContentForBrowser from 'escape-html';
 | 
					import escapeTextContentForBrowser from 'escape-html';
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,7 @@ class Poll extends ImmutablePureComponent {
 | 
				
			||||||
    intl: PropTypes.object.isRequired,
 | 
					    intl: PropTypes.object.isRequired,
 | 
				
			||||||
    dispatch: PropTypes.func,
 | 
					    dispatch: PropTypes.func,
 | 
				
			||||||
    disabled: PropTypes.bool,
 | 
					    disabled: PropTypes.bool,
 | 
				
			||||||
 | 
					    refresh: PropTypes.func,
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  state = {
 | 
					  state = {
 | 
				
			||||||
| 
						 | 
					@ -108,7 +109,7 @@ class Poll extends ImmutablePureComponent {
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.props.dispatch(fetchPoll(this.props.poll.get('id')));
 | 
					    this.props.refresh();
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  renderOption (option, optionIndex, showResults) {
 | 
					  renderOption (option, optionIndex, showResults) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,21 @@
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					import { debounce } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Poll from 'mastodon/components/poll';
 | 
					import Poll from 'mastodon/components/poll';
 | 
				
			||||||
 | 
					import { fetchPoll } from 'mastodon/actions/polls';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const mapDispatchToProps = (dispatch, { pollId }) => ({
 | 
				
			||||||
 | 
					  refresh: debounce(
 | 
				
			||||||
 | 
					    () => {
 | 
				
			||||||
 | 
					      dispatch(fetchPoll(pollId));
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    1000,
 | 
				
			||||||
 | 
					    { leading: true },
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = (state, { pollId }) => ({
 | 
					const mapStateToProps = (state, { pollId }) => ({
 | 
				
			||||||
  poll: state.getIn(['polls', pollId]),
 | 
					  poll: state.getIn(['polls', pollId]),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default connect(mapStateToProps)(Poll);
 | 
					export default connect(mapStateToProps, mapDispatchToProps)(Poll);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue