Comments: Fixed JS error when lacking commenting permissions

The page comments component would throw an error due to references to
form elements/content, when form elements may not exist due to
permisisons.

For #4531
This commit is contained in:
Dan Brown 2023-09-11 18:40:40 +01:00
parent 15da4b98ef
commit 99eb3e5f71
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9

View File

@ -27,16 +27,12 @@ export class PageComments extends Component {
// Internal State
this.parentId = null;
this.formReplyText = this.formReplyLink.textContent;
this.formReplyText = this.formReplyLink?.textContent || '';
this.setupListeners();
}
setupListeners() {
this.removeReplyToButton.addEventListener('click', this.removeReplyTo.bind(this));
this.hideFormButton.addEventListener('click', this.hideForm.bind(this));
this.addCommentButton.addEventListener('click', this.showForm.bind(this));
this.elem.addEventListener('page-comment-delete', () => {
this.updateCount();
this.hideForm();
@ -47,6 +43,9 @@ export class PageComments extends Component {
});
if (this.form) {
this.removeReplyToButton.addEventListener('click', this.removeReplyTo.bind(this));
this.hideFormButton.addEventListener('click', this.hideForm.bind(this));
this.addCommentButton.addEventListener('click', this.showForm.bind(this));
this.form.addEventListener('submit', this.saveComment.bind(this));
}
}
@ -123,9 +122,8 @@ export class PageComments extends Component {
this.showForm();
this.parentId = commentLocalId;
this.replyToRow.toggleAttribute('hidden', false);
const replyLink = this.replyToRow.querySelector('a');
replyLink.textContent = this.formReplyText.replace('1234', this.parentId);
replyLink.href = `#comment${this.parentId}`;
this.formReplyLink.textContent = this.formReplyText.replace('1234', this.parentId);
this.formReplyLink.href = `#comment${this.parentId}`;
}
removeReplyTo() {