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.
62 lines
1.2 KiB
62 lines
1.2 KiB
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
|
|
}
|
|
}
|