@ -102,7 +102,8 @@ 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 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 ) ) ;
@ -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' / > < / b u t t o n > }
{ showResults && ! this . props . disabled && < span > < button className = 'poll__link' onClick = { this . handleRefresh } > < FormattedMessage id = 'poll.refresh' defaultMessage = 'Refresh' / > < / b u t t o n > · < / s p a n > }
< 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 } < / s p a n > }
< / d i v >
< / d i v >