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 = { 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() }
|