Add button to see results for polls in web UI (#25726)
This commit is contained in:
		@@ -130,6 +130,10 @@ class Poll extends ImmutablePureComponent {
 | 
			
		||||
    this.props.refresh();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  handleReveal = () => {
 | 
			
		||||
    this.setState({ revealed: true });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  renderOption (option, optionIndex, showResults) {
 | 
			
		||||
    const { poll, lang, disabled, intl } = this.props;
 | 
			
		||||
    const pollVotesCount  = poll.get('voters_count') || poll.get('votes_count');
 | 
			
		||||
@@ -205,14 +209,14 @@ class Poll extends ImmutablePureComponent {
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    const { poll, intl } = this.props;
 | 
			
		||||
    const { expired } = this.state;
 | 
			
		||||
    const { revealed, expired } = this.state;
 | 
			
		||||
 | 
			
		||||
    if (!poll) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
    let votesCount = null;
 | 
			
		||||
@@ -231,9 +235,10 @@ class Poll extends ImmutablePureComponent {
 | 
			
		||||
 | 
			
		||||
        <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 && !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}
 | 
			
		||||
          {poll.get('expires_at') && <span> · {timeRemaining}</span>}
 | 
			
		||||
          {poll.get('expires_at') && <> · {timeRemaining}</>}
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    );
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user