fix infinite scroll reload

This commit is contained in:
Pete Matsyburka committed 2026-09-23 11:00:17 +03:00
1 parent 05fa75f9a2
commit ef28b80589
4 files changed
+15 -12

No files matched your search

+10 -2
View File
@@ -69,8 +69,6 @@ import HistoryBack from './elements/history_back'
import DatePlaceholder from './elements/date_placeholder'
import FlashMessage from './elements/flash_message'
document.addEventListener('turbo:before-cache', () => {
window.flash?.remove()
})
@@ -99,6 +97,16 @@ if (window.webkit?.messageHandlers?.native) {
}
})
document.addEventListener('turbo:before-fetch-request', (event) => {
const { session } = window.Turbo
const visit = session.navigator.currentVisit
const limit = document.getElementById('infinite_scroll')?.dataset.limit
if (limit && window.scrollY > 0 && event.target === document.documentElement && visit?.location.href === session.view.lastRenderedLocation.href && session.view.isPageRefresh(visit)) {
event.detail.url.searchParams.set('limit', limit)
}
})
document.addEventListener('turbo:visit', (e) => {
isRestoring = e.detail.action === 'restore'
})
+1 -5
View File
@@ -2,11 +2,7 @@ import { renderStreamMessage } from '@hotwired/turbo'
export default class extends HTMLElement {
connectedCallback () {
if (!this.dataset.src) {
this.remove()
return
}
if (!this.dataset.src) return
this.observer = new IntersectionObserver((entries) => {
if (entries.some((entry) => entry.isIntersecting)) {
+3 -5
View File
@@ -1,5 +1,3 @@
<% if pagy.next || pagy.page > 1 %>
<infinite-scroll id="infinite_scroll" class="col-span-full flex justify-center py-2" data-src="<%= url_for(params: request.query_parameters.merge(local_assigns[:query_params].to_h).merge('page' => pagy.next)) if pagy.next %>">
<%= svg_icon('loader', class: 'w-6 h-6 animate-spin') %>
</infinite-scroll>
<% end %>
<infinite-scroll id="infinite_scroll" class="<%= pagy.next ? 'col-span-full flex justify-center py-2' : 'hidden' %>" data-limit="<%= pagy.page * pagy.limit %>" data-src="<%= url_for(params: request.query_parameters.merge(local_assigns[:query_params].to_h).merge('page' => pagy.next)) if pagy.next %>">
<%= svg_icon('loader', class: 'w-6 h-6 animate-spin') if pagy.next %>
</infinite-scroll>
+1
View File
@@ -1,3 +1,4 @@
# frozen_string_literal: true
Pagy::OPTIONS[:limit] = 10
Pagy::OPTIONS[:max_limit] = 200