Module: Pagy::KeynavJsPaginator
- Defined in:
- lib/pagy/toolbox/paginators/keynav_js.rb
Class Method Summary collapse
-
.paginate(set, options) ⇒ Object
Return the Pagy::Keyset::Keynav instance and paginated records.
Class Method Details
.paginate(set, options) ⇒ Object
Return the Pagy::Keyset::Keynav instance and paginated records. Fall back to :countless if the :page has no client data.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pagy/toolbox/paginators/keynav_js.rb', line 11 def paginate(set, ) page = [:request].resolve_page(force_integer: false) # allow nil if page&.match(' ') # countless page -> no augmentation -> fallback return CountlessPaginator.paginate(set, page:, **) elsif page.is_a?(String) # keynav page param page_arguments = JSON.parse(B64.urlsafe_decode(page)) # Restart the pagination from page 1/nil if the url has been requested from another browser [:page] = page_arguments if [:request]. == page_arguments.shift end [:limit] = [:request].resolve_limit pagy = Keyset::Keynav.new(set, **) [pagy, pagy.records] end |