import { inject as service } from "@ember/service";
import { action, computed } from "@ember/object";
import Component from "@glimmer/component";
import { tracked } from "@glimmer/tracking";
import I18n from "I18n";

export default class WizardSubscriptionBadge extends Component {
  @service subscription;
  @tracked updating = false;
  @tracked updateIcon = "sync";
  basePath = "/admin/plugins/subscription-client";

  @computed("subscription.subscriptionType")
  get i18nKey() {
    return `admin.wizard.subscription.type.${
      this.subscription.subscriptionType
        ? this.subscription.subscriptionType
        : "none"
    }`;
  }

  @computed("i18nKey")
  get title() {
    return `${this.i18nKey}.title`;
  }

  @computed("i18nKey")
  get label() {
    return I18n.t(`${this.i18nKey}.label`);
  }

  @action
  click() {
    window.open(this.subscription.subscriptionCtaLink, "_blank").focus();
  }

  @action
  update() {
    this.updating = true;
    this.updateIcon = null;
    this.subscription.updateSubscriptionStatus().finally(() => {
      this.updateIcon = "sync";
      this.updating = false;
    });
  }
}