import Component from "@ember/component";
import discourseComputed from "discourse-common/utils/decorators";
import { not, notEmpty } from "@ember/object/computed";
import I18n from "I18n";

export default Component.extend({
  classNameBindings: [
    ":wizard-notice",
    "notice.type",
    "dismissed",
    "expired",
    "resolved",
  ],
  showFull: false,
  resolved: notEmpty("notice.expired_at"),
  dismissed: notEmpty("notice.dismissed_at"),
  canDismiss: not("dismissed"),

  @discourseComputed("notice.type")
  title(type) {
    return I18n.t(`admin.wizard.notice.title.${type}`);
  },

  @discourseComputed("notice.type")
  icon(type) {
    return {
      plugin_status_warning: "exclamation-circle",
      plugin_status_connection_error: "bolt",
      subscription_messages_connection_error: "bolt",
      info: "info-circle",
    }[type];
  },

  actions: {
    dismiss() {
      this.set("dismissing", true);
      this.notice.dismiss().then(() => {
        this.set("dismissing", false);
      });
    },
  },
});