import Component from "@ember/component"; import CustomWizardPro from "../models/custom-wizard-pro"; import { notEmpty } from "@ember/object/computed"; import discourseComputed from "discourse-common/utils/decorators"; export default Component.extend({ classNameBindings: [ ":custom-wizard-pro-subscription", "subscription.active:active:inactive", ], subscribed: notEmpty("subscription"), @discourseComputed("subscription.type") title(type) { return type ? I18n.t(`admin.wizard.pro.subscription.title.${type}`) : I18n.t("admin.wizard.pro.not_subscribed"); }, @discourseComputed("subscription.active") stateClass(active) { return active ? "active" : "inactive"; }, @discourseComputed("stateClass") stateLabel(stateClass) { return I18n.t(`admin.wizard.pro.subscription.status.${stateClass}`); }, actions: { update() { this.set("updating", true); CustomWizardPro.update_subscription() .then((result) => { if (result.success) { this.setProperties({ updateIcon: "check", subscription: result.subscription, }); } else { this.set("updateIcon", "times"); } }) .finally(() => { this.set("updating", false); setTimeout(() => { this.set("updateIcon", null); }, 7000); }); }, }, });