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.
47 lines
998 B
47 lines
998 B
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()
|
|
}
|