import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  static targets = [ "override" ]

  initialize() {
    let url = window.location.href + "/soft_validations"
    this.fetch_retry(url, { headers: { accept: "application/json" } }, 5)
  }

  fetch_retry(url, options, n) {
    let self = this
    let div = this.overrideTarget
    fetch(url, options)
      .then(response => response.json())
      .then((response) => {
        if(response["show"]){
          div.style.display = "block"
          let innerHTML = div.innerHTML
          innerHTML = innerHTML.replace("soft-validations-placeholder-message", response["label"])
          innerHTML = innerHTML.replace("soft-validations-placeholder-hint-text", response["hint"])
          div.innerHTML = innerHTML
        } else {
          div.style.display = "none"
          let buttons = document.getElementsByName(`case_log[override_net_income_validation][]`)
          Object.entries(buttons).map(([idx, button]) => {
            button.checked = false
          })
        }
      })
      .catch(function(error) {
        if (n === 1) throw error
        return self.fetch_retry(url, options, n - 1)
      })
  }
}