about summary refs log tree commit diff
path: root/app/views/statuses/_status.html.haml
blob: 13a06519cf434ac55b1d6a2c59dc35e665bec03b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
:ruby
  pinned          ||= false
  include_threads ||= false
  is_predecessor  ||= false
  is_successor    ||= false
  direct_reply_id ||= false
  parent_id       ||= false
  autoplay        ||= current_account&.user&.setting_auto_play_gif
  is_direct_parent  = direct_reply_id == status.id
  is_direct_child   = parent_id == status.in_reply_to_id
  centered        ||= include_threads && !is_predecessor && !is_successor
  h_class           = microformats_h_class(status, is_predecessor, is_successor, include_threads)
  style_classes     = style_classes(status, is_predecessor, is_successor, include_threads)
  mf_classes        = microformats_classes(status, is_direct_parent, is_direct_child)
  entry_classes     = h_class + ' ' + mf_classes + ' ' + style_classes

- if status.reply? && include_threads
  - if @next_ancestor
    .entry{ class: entry_classes }
      = link_to_older ActivityPub::TagManager.instance.url_for(@next_ancestor)

  = render partial: 'statuses/status', collection: @ancestors, as: :status, locals: { is_predecessor: true, direct_reply_id: status.in_reply_to_id }, autoplay: autoplay

.entry{ class: entry_classes }

  - if status.reblog?
    .status__prepend
      .status__prepend-icon-wrapper
        %i.status__prepend-icon.fa.fa-fw.fa-retweet
      %span
        = link_to ActivityPub::TagManager.instance.url_for(status.account), class: 'status__display-name muted' do
          %bdi
            %strong.emojify= display_name(status.account, custom_emojify: true)
        = t('stream_entries.reblogged')
  - elsif pinned
    .status__prepend
      .status__prepend-icon-wrapper
        %i.status__prepend-icon.fa.fa-fw.fa-thumb-tack
      %span
        = t('stream_entries.pinned')

  = render (centered ? 'statuses/detailed_status' : 'statuses/simple_status'), status: status.proper, autoplay: autoplay, hide_show_thread: is_predecessor || is_successor

- if include_threads
  - if @since_descendant_thread_id
    .entry{ class: entry_classes }
      = link_to_newer short_account_status_url(status.account.username, status, max_descendant_thread_id: @since_descendant_thread_id + 1)
  - @descendant_threads.each do |thread|
    = render partial: 'statuses/status', collection: thread[:statuses], as: :status, locals: { is_successor: true, parent_id: status.id }, autoplay: autoplay

    - if thread[:next_status]
      .entry{ class: entry_classes }
        = link_to_newer ActivityPub::TagManager.instance.url_for(thread[:next_status])
  - if @next_descendant_thread
    .entry{ class: entry_classes }
      = link_to_newer short_account_status_url(status.account.username, status, since_descendant_thread_id: @max_descendant_thread_id - 1)

- if include_threads && !embedded_view? && !user_signed_in?
  .entry{ class: entry_classes }
    = link_to new_user_session_path, class: 'load-more load-gap' do
      = fa_icon 'comments'
      = t('statuses.sign_in_to_participate')