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
		Add a link
		
	
		Reference in a new issue