import I18n from "I18n";
import Component from "@ember/component";
import discourseComputed, { observes } from "discourse-common/utils/decorators";

export default Component.extend({
  classNames: ["inline-edit"],

  checked: null,
  checkedInternal: null,

  init() {
    this._super(...arguments);

    this.set("checkedInternal", this.checked);
  },

  @observes("checked")
  checkedChanged() {
    this.set("checkedInternal", this.checked);
  },

  @discourseComputed("labelKey")
  label(key) {
    return I18n.t(key);
  },

  @discourseComputed("checked", "checkedInternal")
  changed(checked, checkedInternal) {
    return !!checked !== !!checkedInternal;
  },

  actions: {
    cancelled() {
      this.set("checkedInternal", this.checked);
    },

    finished() {
      this.set("checked", this.checkedInternal);
      this.action();
    },
  },
});
