export class DialogEnchanter extends Dialog {

  static async create(item, actor, callback) {
    const enchanter = {
      actor: actor,
      item: item,
      nouveaupr: item.system.pr,
      prpermanent: item.system.prpermanent,
      purifier: false
    }
    const html = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/item/potion/dialog-enchanter.hbs`, enchanter)
    return new DialogEnchanter(enchanter, html, callback)
  }

  constructor(enchanter, html, callback) {
    let options = { classes: ["dialog-enchanter"], width: 400, height: 'fit-content', 'z-index': 99999 }
    let conf = {
      title: "Enchanter une potion",
      content: html,
      default: "enchanter",
      buttons: {
        "enchanter": { label: "Enchanter", callback: it => this.onEnchanter() }
      }
    };
    super(conf, options)

    this.callback = callback
    this.enchanter = enchanter
  }

  activateListeners(html) {
    super.activateListeners(html)
    this.html = html
    this.html.find("input.nouveaupr").change(event => this.enchanter.nouveaupr = Number(event.currentTarget.value))
    this.html.find("input.purifier").change(event => this.enchanter.purifier = event.currentTarget.checked)
    this.html.find("input.prpermanent").change(event => this.enchanter.prpermanent = event.currentTarget.checked)
  }


  async onEnchanter() {
    await this.html.find(".nouveaupr").change()
    this.callback(this.enchanter);
  }

}