The frontend/UI server, written in JS using the MarkoJS library
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
module.exports = class { onCreate(input) { this.state = { modal: null, removed: false, commentLabels: { Article: "Comment", Message: "Message", Chat: "Chat Message", }, selectedComment: null, } }
onOpenComment(comment, modal) { this.state.selectedComment = comment this.state.modal = modal }
addComment(comment) { this.updateChapter({ comments: this.input.chapter.comments.concat(comment), }) }
editComment(comment) { const comments = this.input.chapter.comments.slice() const index = comments.findIndex(c => c.id === comment.id) if (index != -1) { comments[index] = comment } else { comments.push(comment) }
this.updateChapter({comments}) }
removeComment(comment) { this.updateChapter({comments: this.input.chapter.comments.filter(c => c.id !== comment.id)}) }
updateChapter(data) { this.emit("edit", data) }
moveChapter(data) { this.emit("move", data) }
removeChapter() { this.state.removed = true this.emit("remove") }
open(modal) { this.state.modal = modal }
close() { this.state.modal = null } }
|