Add button to see results for polls in web UI (#25726)
This commit is contained in:
		
							parent
							
								
									eb2417ce99
								
							
						
					
					
						commit
						b7910bc751
					
				| @ -130,6 +130,10 @@ class Poll extends ImmutablePureComponent { | |||||||
|     this.props.refresh(); |     this.props.refresh(); | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   handleReveal = () => { | ||||||
|  |     this.setState({ revealed: true }); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   renderOption (option, optionIndex, showResults) { |   renderOption (option, optionIndex, showResults) { | ||||||
|     const { poll, lang, disabled, intl } = this.props; |     const { poll, lang, disabled, intl } = this.props; | ||||||
|     const pollVotesCount  = poll.get('voters_count') || poll.get('votes_count'); |     const pollVotesCount  = poll.get('voters_count') || poll.get('votes_count'); | ||||||
| @ -205,14 +209,14 @@ class Poll extends ImmutablePureComponent { | |||||||
| 
 | 
 | ||||||
|   render () { |   render () { | ||||||
|     const { poll, intl } = this.props; |     const { poll, intl } = this.props; | ||||||
|     const { expired } = this.state; |     const { revealed, expired } = this.state; | ||||||
| 
 | 
 | ||||||
|     if (!poll) { |     if (!poll) { | ||||||
|       return null; |       return null; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const timeRemaining = expired ? intl.formatMessage(messages.closed) : <RelativeTimestamp timestamp={poll.get('expires_at')} futureDate />; |     const timeRemaining = expired ? intl.formatMessage(messages.closed) : <RelativeTimestamp timestamp={poll.get('expires_at')} futureDate />; | ||||||
|     const showResults   = poll.get('voted') || expired; |     const showResults   = poll.get('voted') || revealed || expired; | ||||||
|     const disabled      = this.props.disabled || Object.entries(this.state.selected).every(item => !item); |     const disabled      = this.props.disabled || Object.entries(this.state.selected).every(item => !item); | ||||||
| 
 | 
 | ||||||
|     let votesCount = null; |     let votesCount = null; | ||||||
| @ -231,9 +235,10 @@ class Poll extends ImmutablePureComponent { | |||||||
| 
 | 
 | ||||||
|         <div className='poll__footer'> |         <div className='poll__footer'> | ||||||
|           {!showResults && <button className='button button-secondary' disabled={disabled || !this.context.identity.signedIn} onClick={this.handleVote}><FormattedMessage id='poll.vote' defaultMessage='Vote' /></button>} |           {!showResults && <button className='button button-secondary' disabled={disabled || !this.context.identity.signedIn} onClick={this.handleVote}><FormattedMessage id='poll.vote' defaultMessage='Vote' /></button>} | ||||||
|           {showResults && !this.props.disabled && <span><button className='poll__link' onClick={this.handleRefresh}><FormattedMessage id='poll.refresh' defaultMessage='Refresh' /></button> · </span>} |           {!showResults && <><button className='poll__link' onClick={this.handleReveal}><FormattedMessage id='poll.reveal' defaultMessage='See results' /></button> · </>} | ||||||
|  |           {showResults && !this.props.disabled && <><button className='poll__link' onClick={this.handleRefresh}><FormattedMessage id='poll.refresh' defaultMessage='Refresh' /></button> · </>} | ||||||
|           {votesCount} |           {votesCount} | ||||||
|           {poll.get('expires_at') && <span> · {timeRemaining}</span>} |           {poll.get('expires_at') && <> · {timeRemaining}</>} | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     ); |     ); | ||||||
|  | |||||||
| @ -487,6 +487,7 @@ | |||||||
|   "picture_in_picture.restore": "Put it back", |   "picture_in_picture.restore": "Put it back", | ||||||
|   "poll.closed": "Closed", |   "poll.closed": "Closed", | ||||||
|   "poll.refresh": "Refresh", |   "poll.refresh": "Refresh", | ||||||
|  |   "poll.reveal": "See results", | ||||||
|   "poll.total_people": "{count, plural, one {# person} other {# people}}", |   "poll.total_people": "{count, plural, one {# person} other {# people}}", | ||||||
|   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", |   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", | ||||||
|   "poll.vote": "Vote", |   "poll.vote": "Vote", | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user