module Pagy::Frontend

def pagy_uikit_nav_js(pagy, id=pagy_id)

Javascript pagination for uikit: it returns a nav and a JSON tag used by the Pagy.nav javascript
def pagy_uikit_nav_js(pagy, id=pagy_id)
  link, p_prev, p_next = pagy_link_proc(pagy), pagy.prev, pagy.next
  previous_span = "<span uk-pagination-previous>#{pagy_t('pagy.nav.prev')}</span>"
  next_span     = "<span uk-pagination-next>#{pagy_t('pagy.nav.next')}</span>"
  tags = { 'before' => p_prev ? %(<li>#{link.call p_prev, previous_span}</li>)
                              : %(<li class="uk-disabled"><a href="#">#{previous_span}</a></li>),
           'link'   => %(<li>#{link.call(PAGE_PLACEHOLDER)}</li>),
           'active' => %(<li class="uk-active"><span>#{PAGE_PLACEHOLDER}</span></li>),
           'gap'    => %(<li class="uk-disabled"><span>#{pagy_t('pagy.nav.gap')}</span></li>),
           'after'  => p_next ? %(<li>#{link.call p_next, next_span}</li>)
                              : %(<li class="uk-disabled"><a href="#">#{next_span}</a></li>) }
  %(<ul id="#{id}" class="pagy-uikit-nav-js uk-pagination uk-flex-center"></ul>#{pagy_json_tag(:nav, id, tags, pagy.sequels, defined?(TRIM) && pagy.vars[:page_param])})
end