mirror of
				https://github.com/lunaisnotaboy/mastodon.git
				synced 2025-11-04 06:45:01 +00:00 
			
		
		
		
	[Glitch] Add voters count support
Port front-end changes from 3babf8464b to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									1bfa9149ee
								
							
						
					
					
						commit
						e5a50eda4c
					
				| 
						 | 
				
			
			@ -102,10 +102,11 @@ class Poll extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
  renderOption (option, optionIndex, showResults) {
 | 
			
		||||
    const { poll, disabled, intl } = this.props;
 | 
			
		||||
    const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
 | 
			
		||||
    const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') >= other.get('votes_count'));
 | 
			
		||||
    const active  = !!this.state.selected[`${optionIndex}`];
 | 
			
		||||
    const voted   = option.get('voted') || (poll.get('own_votes') && poll.get('own_votes').includes(optionIndex));
 | 
			
		||||
    const pollVotesCount  = poll.get('voters_count') || poll.get('votes_count');
 | 
			
		||||
    const percent         = pollVotesCount === 0 ? 0 : (option.get('votes_count') / pollVotesCount) * 100;
 | 
			
		||||
    const leading         = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') >= other.get('votes_count'));
 | 
			
		||||
    const active          = !!this.state.selected[`${optionIndex}`];
 | 
			
		||||
    const voted           = option.get('voted') || (poll.get('own_votes') && poll.get('own_votes').includes(optionIndex));
 | 
			
		||||
 | 
			
		||||
    let titleEmojified = option.get('title_emojified');
 | 
			
		||||
    if (!titleEmojified) {
 | 
			
		||||
| 
						 | 
				
			
			@ -157,6 +158,14 @@ class Poll extends ImmutablePureComponent {
 | 
			
		|||
    const showResults   = poll.get('voted') || expired;
 | 
			
		||||
    const disabled      = this.props.disabled || Object.entries(this.state.selected).every(item => !item);
 | 
			
		||||
 | 
			
		||||
    let votesCount = null;
 | 
			
		||||
 | 
			
		||||
    if (poll.get('voters_count') !== null && poll.get('voters_count') !== undefined) {
 | 
			
		||||
      votesCount = <FormattedMessage id='poll.total_people' defaultMessage='{count, plural, one {# person} other {# people}}' values={{ count: poll.get('voters_count') }} />;
 | 
			
		||||
    } else {
 | 
			
		||||
      votesCount = <FormattedMessage id='poll.total_votes' defaultMessage='{count, plural, one {# vote} other {# votes}}' values={{ count: poll.get('votes_count') }} />;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
      <div className='poll'>
 | 
			
		||||
        <ul>
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +175,7 @@ class Poll extends ImmutablePureComponent {
 | 
			
		|||
        <div className='poll__footer'>
 | 
			
		||||
          {!showResults && <button className='button button-secondary' disabled={disabled} 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>}
 | 
			
		||||
          <FormattedMessage id='poll.total_votes' defaultMessage='{count, plural, one {# vote} other {# votes}}' values={{ count: poll.get('votes_count') }} />
 | 
			
		||||
          {votesCount}
 | 
			
		||||
          {poll.get('expires_at') && <span> · {timeRemaining}</span>}
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue