mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-10-09 08:10:08 +09:00
20275e1fa7
Pages of messages load them with_presentation, which preloads each message's boosts with their boosters and avatars, but the boosts partial asked for message.boosts.ordered: a new query for every message, and the preloaded boosts went unused. Sort the preloaded boosts in Ruby. The boosts frame, whose message comes without them, still queries them in order with their boosters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0142qgjggdJ2KDdGk7RF9Xm9
18 lines
1.0 KiB
Plaintext
18 lines
1.0 KiB
Plaintext
<%= turbo_frame_tag message, :boosting do %>
|
|
<div class="boosts flex flex-wrap align-center gap full-width" style="--column-gap: 0.4ch; --row-gap: 0"
|
|
data-controller="turbo-streaming" data-action="turbo:submit-start->turbo-streaming#unsubscribe">
|
|
<div class="flex-inline flex-wrap gap" id="<%= dom_id(message, :boosts) %>" data-turbo-streaming-target="container">
|
|
<%= render partial: "messages/boosts/boost", collection: message.boosts.loaded? ? message.boosts.sort_by(&:created_at) : message.boosts.ordered.includes(:booster) %>
|
|
</div>
|
|
|
|
<%= turbo_frame_tag message, :new_boost do %>
|
|
<div class="flex-inline message__boost-inline" data-controller="soft-keyboard">
|
|
<%= link_to new_message_boost_path(message), class: "boost__action txt-small btn", data: { action: "soft-keyboard#open" } do %>
|
|
<%= image_tag "boost.svg", size: 20, aria: { hidden: "true" } %>
|
|
<span class="for-screen-reader">Add a boost</span>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|