def index
@blocked_users = current_user.blocked_users
@pagy, @blocked_users = pagy(@blocked_users, limit: 20)
respond_to do |format|
format.turbo_stream
format.html do
render("users/blocked_users/index", layout: "settings")
end
end
end
index.html.erb
<div class="bg-white p-4 flex flex-col gap-2">
<h3 class="font-medium text-sm">List of blocked users</h3>
<div class="flex flex-col gap-2 relative">
<%= turbo_frame_tag "blocked_users" do %>
<% @blocked_users.each do |blocked_user| %>
<%= render "users/blocked_users/user", blocked_user: blocked_user %>
<% end %>
<% if @pagy.next.present? %>
<%= turbo_frame_tag :pagination,
loading: :lazy,
src: settings_blocked_users_path(page: @pagy.next, format: :turbo_stream),
class: "" do %>
<%= render "shared/skeleton/notification", count: 6 %>
<% end %>
<% end %>
<% end %>
<% if current_user.blocked_users.empty? %>
<p class="text-sm">You don't have any blocked users</p>
<% end %>
</div>
</div>
index.turbo_stream.erb
<%= turbo_stream.remove "pagination" %>
<%= turbo_stream.append "blocked_users" do %>
<% @blocked_users.each do |blocked_user| %>
<%= render "users/blocked_users/user", blocked_user: blocked_user %>
<% end %>
<% end %>
<% if @pagy.next.present? %>
<%= turbo_stream.append "blocked_users" do %>
<%= turbo_frame_tag "pagination",
loading: :lazy,
src: settings_blocked_users_path(page: @pagy.next, format: :turbo_stream),
class: "" do %>
<%= render "shared/skeleton/notification", count: 6 %>
<% end %>
<% end %>
<% end %>