summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/visibility_select.js
blob: 0c928d0d5f63469bc0e5d2acbc78d994fe4ed3c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
export default class VisibilitySelect {
  constructor(container) {
    if (!container) throw new Error('VisibilitySelect requires a container element as argument 1');
    this.container = container;
    this.helpBlock = this.container.querySelector('.help-block');
    this.select = this.container.querySelector('select');
  }

  init() {
    if (this.select) {
      this.updateHelpText();
      this.select.addEventListener('change', this.updateHelpText.bind(this));
    } else {
      this.helpBlock.textContent = this.container.querySelector('.js-locked').dataset.helpBlock;
    }
  }

  updateHelpText() {
    this.helpBlock.textContent = this.select.querySelector('option:checked').dataset.description;
  }
}