Sha256: fda068fc503ca85069fe4acec40fdf2594c81a28f6553bf8f840d6b3a215184d

Contents?: true

Size: 1.1 KB

Versions: 53

Compression:

Stored size: 1.1 KB

Contents

import { Controller } from '@hotwired/stimulus'

export default class extends Controller {
  static targets = ['resourceAction', 'standaloneAction']

  static classes = ['enabled', 'disabled']

  target = {}

  get targetIsDisabled() {
    return this.target.dataset.disabled === 'true'
  }

  get actionsShowTurboFrame() {
    return document.querySelector(`turbo-frame#${window.Avo.configuration.modal_frame_id}`)
  }

  enableTarget() {
    if (this.targetIsDisabled) {
      this.target.classList.remove(...this.disabledClasses)
      this.target.classList.add(...this.enabledClasses)
      this.target.dataset.disabled = false
    }
  }

  disableTarget() {
    this.target.classList.remove(...this.enabledClasses)
    this.target.classList.add(...this.disabledClasses)
    this.target.dataset.disabled = true
  }

  visitAction(event) {
    this.target = event.target

    if (this.targetIsDisabled) {
      event.preventDefault()

      return
    }

    this.disableTarget()
    const that = this
    setTimeout(() => {
      this.actionsShowTurboFrame.loaded.then(() => that.enableTarget(that.target))
    }, 1)
  }
}

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
avo-3.18.1.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.18.1 app/javascript/js/controllers/actions_picker_controller.js
avo-3.18.0.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.18.0 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.9.beta2 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.9.beta1 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.9.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.9 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.8.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.8 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.7 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.6.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.6 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.5 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.3 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.5.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.4.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.3.tw4 app/javascript/js/controllers/actions_picker_controller.js
avo-3.17.2.tw4 app/javascript/js/controllers/actions_picker_controller.js