diff --git a/app/assets/javascripts/discourse/components/topic-timer-info.js.es6 b/app/assets/javascripts/discourse/components/topic-timer-info.js.es6 index 5e8cdb96d35..4b3110bc293 100644 --- a/app/assets/javascripts/discourse/components/topic-timer-info.js.es6 +++ b/app/assets/javascripts/discourse/components/topic-timer-info.js.es6 @@ -23,60 +23,59 @@ export default Ember.Component.extend( const topicStatusKnown = this.topicClosed !== undefined; if (topicStatusKnown && topicStatus === this.statusType) return; - let statusUpdateAt = moment(this.executeAt); + const statusUpdateAt = moment(this.executeAt); + const duration = moment.duration(statusUpdateAt - moment()); + const minutesLeft = duration.asMinutes(); - let duration = moment.duration(statusUpdateAt - moment()); - let minutesLeft = duration.asMinutes(); - let rerenderDelay = 1000; + if (minutesLeft > 0) { + 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; - 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; - } + buffer.push(`

${iconHTML("far-clock")} `); - let autoCloseHours = this.duration || 0; + let options = { + timeLeft: duration.humanize(true), + duration: moment.duration(autoCloseHours, "hours").humanize() + }; - buffer.push(`

${iconHTML("far-clock")} `); + const categoryId = this.categoryId; + if (categoryId) { + const category = Category.findById(categoryId); - let options = { - timeLeft: duration.humanize(true), - duration: moment.duration(autoCloseHours, "hours").humanize() - }; + options = Object.assign( + { + categoryName: category.get("slug"), + categoryUrl: category.get("url") + }, + options + ); + } - const categoryId = this.categoryId; - - if (categoryId) { - const category = Category.findById(categoryId); - - options = Object.assign( - { - categoryName: category.get("slug"), - categoryUrl: category.get("url") - }, - options + buffer.push( + `${I18n.t( + this._noticeKey(), + options + )}` ); - } + buffer.push("

"); - buffer.push( - `${I18n.t( - this._noticeKey(), - options - )}` - ); - buffer.push(""); - - // TODO Sam: concerned this can cause a heavy rerender loop - if (!Ember.testing) { - this._delayedRerender = Ember.run.later( - this, - this.rerender, - rerenderDelay - ); + // TODO Sam: concerned this can cause a heavy rerender loop + if (!Ember.testing) { + this._delayedRerender = Ember.run.later( + this, + this.rerender, + rerenderDelay + ); + } } },