# See the Pagy documentation: https://ddnexus.github.io/pagy/extras/navs
# encoding: utf-8
# frozen_string_literal: true
require 'pagy/extras/shared'
class Pagy
module Frontend
# Javascript pagination: it returns a nav and a JSON tag used by the Pagy.nav javascript
def pagy_nav_js(pagy, id=pagy_id)
link, p_prev, p_next = pagy_link_proc(pagy), pagy.prev, pagy.next
tags = { 'before' => p_prev ? %(#{link.call p_prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"'} )
: %(#{pagy_t('pagy.nav.prev')} ),
'link' => %(#{link.call(MARK)} ),
'active' => %(#{pagy.page} ),
'gap' => %(#{pagy_t('pagy.nav.gap')} ),
'after' => p_next ? %(#{link.call p_next, pagy_t('pagy.nav.next'), 'aria-label="next"'})
: %(#{pagy_t('pagy.nav.next')}) }
%(#{pagy_json_tag(:nav, id, tags, pagy.sequels)})
end
# Javascript combo pagination: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
def pagy_combo_nav_js(pagy, id=pagy_id)
link, p_prev, p_next, p_page, p_pages = pagy_link_proc(pagy), pagy.prev, pagy.next, pagy.page, pagy.pages
html = EMPTY + %(#{pagy_json_tag(:combo_nav, id, p_page, pagy_links(link))})
end
end
end