import { iconHTML } from "discourse-common/lib/icon-library"; import { bufferedRender } from "discourse-common/lib/buffered-render"; export default Ember.Component.extend( bufferedRender({ tagName: "th", classNames: ["sortable"], rerenderTriggers: ["order", "ascending"], buildBuffer(buffer) { const icon = this.get("icon"); if (icon) { buffer.push(iconHTML(icon)); } buffer.push(I18n.t(this.get("i18nKey"))); if (this.get("field") === this.get("order")) { buffer.push( iconHTML(this.get("ascending") ? "chevron-up" : "chevron-down") ); } }, click() { const currentOrder = this.get("order"); const field = this.get("field"); if (currentOrder === field) { this.set("ascending", this.get("ascending") ? null : true); } else { this.setProperties({ order: field, ascending: null }); } } }) );