diff --git a/app/javascript/mastodon/components/poll.jsx b/app/javascript/mastodon/components/poll.jsx
index dfc4034fa..4304f9acd 100644
--- a/app/javascript/mastodon/components/poll.jsx
+++ b/app/javascript/mastodon/components/poll.jsx
@@ -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) : ;
- 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 {
{!showResults && }
- {showResults && !this.props.disabled && · }
+ {!showResults && <> · >}
+ {showResults && !this.props.disabled && <> · >}
{votesCount}
- {poll.get('expires_at') && · {timeRemaining}}
+ {poll.get('expires_at') && <> · {timeRemaining}>}
);
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index b33c8e677..2afac7e7e 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -487,6 +487,7 @@
"picture_in_picture.restore": "Put it back",
"poll.closed": "Closed",
"poll.refresh": "Refresh",
+ "poll.reveal": "See results",
"poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
"poll.vote": "Vote",