Add check for null reply_to_user
[akkoma] / lib / pleroma / web / templates / static_fe / static_fe / _notice.html.eex
1 <div class="status-container" <%= if @selected do %> id="selected" <% end %>>
2 <div class="left-side">
3 <a href="<%= (@user.uri || @user.ap_id) %>" rel="author noopener">
4 <div class="avatar">
5 <img
6 class="u-photo" width="48" height="48"
7 src="<%= User.avatar_url(@user) |> MediaProxy.url %>"
8 title="<%= @user.nickname %>" alt="<%= @user.nickname %>"
9 />
10 </div>
11 </a>
12 </div>
13 <div class="right-side">
14 <div class="status-heading">
15 <div class="heading-name-row">
16 <div class="heading-left">
17 <h4 class="username">
18 <%= raw Formatter.emojify(@user.name, @user.emoji) %>
19 </h4>
20 <a href="<%= (@user.uri || @user.ap_id) %>" class="account-name">
21 <%= @user.nickname %>
22 </a>
23 </div>
24 <div class="heading-right">
25 <a class="timeago" href="<%= @link %>">
26 <time
27 class="dt-published" datetime="<%= @published %>"
28 title="<%= format_date(@published) %>"
29 >
30 <%= time_ago(@published) %>
31 </time>
32 </a>
33 <%= if @visibility == "public" do %>
34 <img class="fa-icon" src="/static-fe/svg/globe-solid.svg">
35 <% else %>
36 <%= if @visibility == "unlisted" do %>
37 <img class="fa-icon" src="/static-fe/svg/lock-open-solid.svg">
38 <% end %>
39 <% end %>
40 </div>
41 </div>
42 <%= if @reply_to do %>
43 <div class="heading-reply-row">
44 <a class="reply-to-link" href="<%= @reply_to %>">
45 <img class="fa-icon" src="/static-fe/svg/reply-solid.svg">
46 <%= gettext("Reply to") %>
47 </a>
48 <span class="h-card">
49 <%= if @reply_to_user do %>
50 <a href="<%= (@reply_to_user.uri || @reply_to_user.ap_id) %>" class="u-url mention">
51 @<%= @reply_to_user.nickname %>
52 </a>
53 <% end %>
54 </span>
55 </div>
56 <% end %>
57 <%= if @edited_at do %>
58 <div class="heading-edited-row">
59 <%= gettext("Edited %{timeago}", timeago: time_ago(@edited_at)) %>
60 </div>
61 <% end %>
62 </div>
63 <div class="status-content">
64 <%= if @title && @title != "" do %>
65 <span class="status-summary"><%= raw @title %></span>
66 <details <%= if open_content?() do %>open<% end %>>
67 <summary><%= gettext("Show content") %></summary>
68 <% end %>
69 <div class="status-body">
70 <%= raw @content %>
71 <%= if @poll && length(@poll) > 0 do %>
72 <div class="poll">
73 <%= for %{"name" => option, "replies" => %{"totalItems" => count}} <- @poll do %>
74 <div class="poll-option" title="<%= count %>/<%= @total_votes %>">
75 <span class="percentage"><%= poll_percentage(count, @total_votes) %></span>
76 <span><%= raw option %></span>
77 <div class="fill" style="width: <%= poll_percentage(count, @total_votes) %>"></div>
78 </div>
79 <% end %>
80 </div>
81 <% end %>
82 <%= if length(@attachment) > 0 do %>
83 <div class="attachments">
84 <%= for attachment = %{"url" => [url | _]} <- @attachment do %>
85 <%= render("_attachment.html", %{name: get_attachment_name(attachment),
86 url: url["href"], mediaType: fetch_media_type(url), nsfw: @sensitive}) %>
87 <% end %>
88 </div>
89 <% end %>
90 </div>
91 <%= if @title && @title != "" do %>
92 </details>
93 <% end %>
94 </div>
95 <!-- <div class="emoji-reactions"></div> -->
96 <div class="status-actions">
97 <div>
98 <img class="fa-icon" src="/static-fe/svg/reply-solid.svg">
99 <span class="action-count"><%= @counts.replies %></span>
100 </div>
101 <div>
102 <img class="fa-icon" src="/static-fe/svg/retweet-solid.svg">
103 <span class="action-count"><%= @counts.announces %></span>
104 </div>
105 <div>
106 <img class="fa-icon" src="/static-fe/svg/star-regular.svg">
107 <span class="action-count"><%= @counts.likes %></span>
108 </div>
109 </div>
110 </div>
111 </div>