34 lines
772 B
JavaScript
34 lines
772 B
JavaScript
import { ajax } from "discourse/lib/ajax";
|
|
|
|
export default Ember.Component.extend({
|
|
tagName: "",
|
|
expanded: null,
|
|
_loading: false,
|
|
|
|
actions: {
|
|
toggleItem() {
|
|
if (this._loading) {
|
|
return false;
|
|
}
|
|
const item = this.item;
|
|
|
|
if (this.expanded) {
|
|
this.set("expanded", false);
|
|
item.set("expandedExcerpt", null);
|
|
return;
|
|
}
|
|
|
|
const topicId = item.get("topic_id");
|
|
const postNumber = item.get("post_number");
|
|
|
|
this._loading = true;
|
|
return ajax(`/posts/by_number/${topicId}/${postNumber}.json`)
|
|
.then(result => {
|
|
this.set("expanded", true);
|
|
item.set("expandedExcerpt", result.cooked);
|
|
})
|
|
.finally(() => (this._loading = false));
|
|
}
|
|
}
|
|
});
|