module.exports = class { onCreate(input) { this.state = { publics: input.publics.sort(byDate), privates: input.privates.sort(byDate), modal: null, } } onMount() { } open(modal) { this.state.modal = modal } close() { this.state.modal = null } fileRemoved({id}) { this.state.publics = this.state.publics.filter(f => f.id !== id) this.state.privates = this.state.privates.filter(f => f.id !== id) } fileEdited(file, patch) { this.fileRemoved({id: file.id}) this.fileAdded(Object.assign({}, file, patch)) console.log(Object.assign({}, file, patch)) } fileAdded(file) { if (file.public) { this.state.publics = [].concat(...this.state.publics).concat(file).sort(byDate) } else { this.state.privates = [].concat(...this.state.privates).concat(file).sort(byDate) } } } function byDate(a, b) { const ad = new Date(a.time) const bd = new Date(b.time) return ad.getTime() - bd.getTime() }