# 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