Sha256: 46b701e0032d717c19905315cb167a202a98e8aa3ec99712f18c65db54d58f33

Contents?: true

Size: 953 Bytes

Versions: 39

Compression:

Stored size: 953 Bytes

Contents

import {Controller} from "stimulus"

// Fetches JSON values from the server and updates the targets with the response.
export default class extends Controller {
  static values = {
    url: String,
  }
  static targets = ["value"]

  connect() {
    this.#fetch();
  }

  async #fetch() {
    const data = await fetch(this.urlValue).then(response => response.json())
    this.valueTargets.forEach((target) => {
      target.textContent = data[target.dataset['asyncValuesKey']];
      target.classList.remove('d-none');

      // When `data-async-values-zero-class="css-class"` is set, add `css-class` to the target if the value is "0"
      if (target.dataset['asyncValuesZeroClass']) {
        const className = target.dataset['asyncValuesZeroClass'];
        if (data[target.dataset['asyncValuesKey']] === "0") {
          target.classList.add(className);
        } else {
          target.classList.remove(className);
        }
      }
    });
  }
}

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
good_job-4.0.3 app/frontend/good_job/modules/async_values_controller.js
good_job-4.0.2 app/frontend/good_job/modules/async_values_controller.js
good_job-4.0.1 app/frontend/good_job/modules/async_values_controller.js
good_job-4.0.0 app/frontend/good_job/modules/async_values_controller.js
good_job-3.99.0 app/frontend/good_job/modules/async_values_controller.js
good_job-3.30.1 app/frontend/good_job/modules/async_values_controller.js
good_job-3.30.0 app/frontend/good_job/modules/async_values_controller.js
good_job-3.29.5 app/frontend/good_job/modules/async_values_controller.js
good_job-3.29.4 app/frontend/good_job/modules/async_values_controller.js
good_job-3.29.3 app/frontend/good_job/modules/async_values_controller.js
good_job-3.28.2 app/frontend/good_job/modules/async_values_controller.js
good_job-3.28.1 app/frontend/good_job/modules/async_values_controller.js
good_job-3.28.0 app/frontend/good_job/modules/async_values_controller.js
good_job-3.27.4 app/frontend/good_job/modules/async_values_controller.js
good_job-3.27.3 app/frontend/good_job/modules/async_values_controller.js
good_job-3.27.2 app/frontend/good_job/modules/async_values_controller.js
good_job-3.27.1 app/frontend/good_job/modules/async_values_controller.js
good_job-3.27.0 app/frontend/good_job/modules/async_values_controller.js
good_job-3.26.2 app/frontend/good_job/modules/async_values_controller.js