.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
- if status.poll
- = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json
+ = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
+ = render partial: 'stream_entries/poll', locals: { poll: status.poll }
- elsif !status.media_attachments.empty?
- if status.media_attachments.first.video?
- video = status.media_attachments.first
--- /dev/null
+- options = (!poll.expired? && poll.hide_totals?) ? poll.unloaded_options : poll.loaded_options
+- voted = poll.votes.where(account: current_user.account).exists?
+- show_results = voted || poll.expired?
+
+.poll
+ %ul
+ - options.each do |option|
+ %li
+ - if show_results
+ - percent = 100 * option.votes_count / poll.votes_count
+ %span.poll__chart{ style: "width: #{percent}%" }
+ %label.poll__text><
+ %span.poll__number= percent
+ = option.title
+ - else
+ %label.poll__text><
+ %span.poll__input{ class: poll.multiple ? 'checkbox' : nil}><
+ = option.title
+ .poll__footer
+ - unless show_results
+ %button.button.button-secondary{ disabled: true }
+ = t('statuses.poll.vote')
+ %span= t('statuses.poll.total_votes', count: poll.votes_count)
+ ยท
+ %span= poll.expires_at
.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
- if status.poll
- = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json
+ = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
+ = render partial: 'stream_entries/poll', locals: { poll: status.poll }
- elsif !status.media_attachments.empty?
- if status.media_attachments.first.video?
- video = status.media_attachments.first
ownership: Someone else's toot cannot be pinned
private: Non-public toot cannot be pinned
reblog: A boost cannot be pinned
+ poll:
+ total_votes:
+ one: "%{count} vote"
+ other: "%{count} votes"
+ vote: Vote
show_more: Show more
sign_in_to_participate: Sign in to participate in the conversation
title: '%{name}: "%{quote}"'