Sha256: 644e98299fba578470e6f9e6486543e773e0dc2b4100488388b65138761d9487

Contents?: true

Size: 878 Bytes

Versions: 1

Compression:

Stored size: 878 Bytes

Contents

import { Controller } from '@hotwired/stimulus'

export default class NavigationController extends Controller {
  connect() {
    let main_nav = this.element
    this.collect_nav_links_into(main_nav)
    this.is_frist_history_entry && this.hide_back_button_in(main_nav)
  }

  back (event) {
    if (!this.is_frist_history_entry) {
      event.preventDefault()
      window.history.back()
    }
  }

  //////////////////////////

  collect_nav_links_into(main_nav) {
    document.querySelectorAll('p.nav').forEach(element => {
      if (element != main_nav) {
        main_nav.append(...element.childNodes)
      }
    })
}

  hide_back_button_in(main_nav) {
    let link = main_nav.querySelector("a.back")
    link && link.remove()
  }

  get is_frist_history_entry () {
    return !window.history.state.turbo ||
        window.history.state.turbo.restorationIndex === 0
  }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
advanced_haml_scaffold_generator-3.0.0 lib/rails/generators/haml/scaffold/templates/navigation_controller.js