33 lines
1,021 B
JavaScript
33 lines
1,021 B
JavaScript
"use strict";
|
|
|
|
const events = require("../events.js");
|
|
const views = require("../util/views.js");
|
|
const CommentListControl = require("../controls/comment_list_control.js");
|
|
|
|
const template = views.getTemplate("comments-page");
|
|
|
|
class CommentsPageView extends events.EventTarget {
|
|
constructor(ctx) {
|
|
super();
|
|
this._hostNode = ctx.hostNode;
|
|
|
|
const sourceNode = template(ctx);
|
|
|
|
for (let post of ctx.response.results) {
|
|
const commentListControl = new CommentListControl(
|
|
sourceNode.querySelector(
|
|
`.comments-container[data-for="${post.id}"]`
|
|
),
|
|
post.comments,
|
|
true
|
|
);
|
|
events.proxyEvent(commentListControl, this, "submit");
|
|
events.proxyEvent(commentListControl, this, "score");
|
|
events.proxyEvent(commentListControl, this, "delete");
|
|
}
|
|
|
|
views.replaceContent(this._hostNode, sourceNode);
|
|
}
|
|
}
|
|
|
|
module.exports = CommentsPageView;
|