|
export class CommentManager {
|
|
constructor() {
|
|
this.initCommentReply();
|
|
}
|
|
|
|
initCommentReply() {
|
|
document.querySelectorAll("[data-action='reply']").forEach((btn) => {
|
|
btn.addEventListener("click", (e) => {
|
|
e.preventDefault();
|
|
const comment = btn.closest(".comment");
|
|
const commentForm = document.querySelector(".comment-form");
|
|
if (!comment || !commentForm) return;
|
|
const textarea = commentForm.querySelector("textarea");
|
|
if (!textarea) return;
|
|
let parentInput = commentForm.querySelector('input[name="parent_uid"]');
|
|
if (!parentInput) {
|
|
parentInput = document.createElement("input");
|
|
parentInput.type = "hidden";
|
|
parentInput.name = "parent_uid";
|
|
commentForm.appendChild(parentInput);
|
|
}
|
|
const commentBody = comment.querySelector(".comment-body");
|
|
if (commentBody && commentBody.dataset.commentUid) {
|
|
parentInput.value = commentBody.dataset.commentUid;
|
|
}
|
|
textarea.focus();
|
|
textarea.scrollIntoView({ behavior: "smooth" });
|
|
});
|
|
});
|
|
}
|
|
}
|