module Pagy::MaterializeExtra

def pagy_materialize_nav_js(pagy, id: nil, aria_label: nil, **vars)

Javascript pagination for materialize: it returns a nav with a data-pagy attribute used by the pagy.js file
def pagy_materialize_nav_js(pagy, id: nil, aria_label: nil, **vars)
  sequels = pagy.sequels(**vars)
  id      = %( id="#{id}") if id
  a = pagy_anchor(pagy)
  tokens = { 'before' => %(<ul class="pagination">#{materialize_prev_html pagy, a}),
             'a'      => %(<li class="waves-effect">#{a.(PAGE_TOKEN, LABEL_TOKEN)}</li>),
             'current' => %(<li class="active"><a role="link" aria-current="page" aria-disabled="true">#{
                              LABEL_TOKEN}</a></li>),
             'gap'    => %(<li class="gap disabled"><a role="link" aria-disabled="true">#{pagy_t 'pagy.gap'}</a></li>),
             'after'  => %(#{materialize_next_html pagy, a}</ul>) }
  %(<div#{id} class="#{'pagy-rjs ' if sequels.size > 1}pagy-materialize nav-js" role="navigation" #{
      nav_aria_label(pagy, aria_label:)} #{
      pagy_data(pagy, :nav, tokens, sequels, pagy.label_sequels(sequels))
    }></div>)
end