Use frame based pagination for the users timeline too

This commit is contained in:
Jorge Manrubia
2025-10-02 15:45:09 +02:00
parent 0d6333f8ba
commit bc90129af2
4 changed files with 22 additions and 6 deletions
+9 -1
View File
@@ -24,7 +24,7 @@ class UsersController < ApplicationController
def show
@filter = Current.user.filters.new(creator_ids: [ @user.id ])
@day_timeline = Current.user.timeline_for(Time.current, filter: @filter)
@day_timeline = Current.user.timeline_for(day_param, filter: @filter)
end
def update
@@ -50,6 +50,14 @@ class UsersController < ApplicationController
head :forbidden unless Current.user.can_change?(@user)
end
def day_param
if params[:day].present?
Time.zone.parse(params[:day])
else
Time.current
end
end
def user_params
params.expect(user: [ :name, :email_address, :password, :avatar ])
end
+1 -1
View File
@@ -1,6 +1,6 @@
<%= link_to event.notifiable_target,
class: "event event--#{ event.action } #{ "golden-effect" if event.card.golden? } center-block flex flex-column full-width align-start justify-start position-relative",
style: "--card-color: #{ card.closed? ? "var(--color-card-complete)" : card.color };",
style: "--card-color: #{ card.closed? ? "var(--color-card-complete)" : card.color };", target: "_top",
data: { related_element_target: "related",
related_element_group_value: card.id,
action: "mouseover->related-element#highlight mouseout->related-element#unhighlight" } do %>
@@ -0,0 +1,11 @@
<div class="events margin-block-double" id="activity" data-controller="pagination" data-pagination-paginate-on-intersection-value="true">
<%= day_timeline_pagination_frame_tag day_timeline do %>
<%= render "events/day", day_timeline: day_timeline %>
<%= link_to "Load more...", user_path(user, day: day_timeline.next_day.strftime("%Y-%m-%d"), **filter.as_params),
data: { frame: day_timeline_pagination_frame_id_for(day_timeline.next_day), pagination_target: "paginationLink" } %>
<% end %>
</div>
+1 -4
View File
@@ -50,7 +50,4 @@
<h1 class="font-weight-black txt-large margin-block-double"><%= "What #{ Current.user == @user ? "have you" : "has #{ @user.first_name }" } been up to?" %></h1>
<div class="events margin-block-double" id="activity">
<%= render "events/day", day_timeline: @day_timeline %>
</div>
<%= event_next_page_link(@day_timeline.next_day) %>
<%= render "users/activity_timeline", user: @user, day_timeline: @day_timeline, filter: @filter %>