import { h, Component } from 'preact' class FileUpload extends Component { constructor(props){ super(props) this.handleChange = this.handleChange.bind(this) } handleChange(e){ this.props.onChange && this.props.onChange() e.stopPropagation() e.preventDefault() this.setState({ thumbnails: [], images: [] }) const files = e.dataTransfer ? e.dataTransfer.files : e.target.files const mimeFiles = [] let i, f for (i = 0, f; i < files.length; i++) { mimeFiles.push(files[i]) // if (!f.type.match(this.props.mime)) continue } const promises = mimeFiles.map(f => ( (resolve, reject) => { this.props.onUpload(f, f.name).then(resolve).catch(reject) } )) promises.reduce((p, fn) => p.then(fn), Promise.resolve()) } render() { return (