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.
32 lines
657 B
32 lines
657 B
module.exports = class {
|
|
onCreate(input) {
|
|
this.state = {
|
|
channels: input.channels,
|
|
modal: null,
|
|
}
|
|
}
|
|
|
|
open(modal) {
|
|
this.state.modal = modal
|
|
}
|
|
|
|
close() {
|
|
this.state.modal = null
|
|
}
|
|
|
|
channelEdited(channel, patch) {
|
|
const channels = this.state.channels.slice()
|
|
const index = channels.findIndex(c => c.name === channel.name)
|
|
if (index === -1) {
|
|
return
|
|
}
|
|
|
|
channels[index] = Object.assign({}, channels[index], patch)
|
|
|
|
this.state.channels = channels
|
|
}
|
|
|
|
channelAdded(channel) {
|
|
this.state.channels = this.state.channels.concat(channel).sort((a,b) => a.name.localeCompare(b.name))
|
|
}
|
|
}
|