import { iconHTML } from "discourse-common/lib/icon-library"; import { bufferedRender } from "discourse-common/lib/buffered-render"; import Category from "discourse/models/category"; export default Ember.Component.extend( bufferedRender({ classNames: ["topic-status-info"], _delayedRerender: null, rerenderTriggers: [ "topicClosed", "statusType", "executeAt", "basedOnLastPost", "duration", "categoryId" ], buildBuffer(buffer) { if (!this.executeAt) return; const topicStatus = this.topicClosed ? "close" : "open"; const topicStatusKnown = this.topicClosed !== undefined; if (topicStatusKnown && topicStatus === this.statusType) return; let statusUpdateAt = moment(this.executeAt); let duration = moment.duration(statusUpdateAt - moment()); let minutesLeft = duration.asMinutes(); let rerenderDelay = 1000; if (minutesLeft > 2160) { rerenderDelay = 12 * 60 * 60000; } else if (minutesLeft > 1410) { rerenderDelay = 60 * 60000; } else if (minutesLeft > 90) { rerenderDelay = 30 * 60000; } else if (minutesLeft > 2) { rerenderDelay = 60000; } let autoCloseHours = this.duration || 0; buffer.push(`