Saber2pr's Blog

FileReadingAndFileDragUpload

const readFile = file =>
    new Promise((resolve, reject) => {
        const reader = new FileReader()
        reader.onload = () => resolve(reader.result)
        reader.onerror = () => reject(reader.result)
        reader.readAsText(file)
    })

const addUploadListener = callback => {
    document.addEventListener("dragover", e => e.preventDefault())
    document.addEventListener("drop", event => {
        event.preventDefault()
        const dt = event.dataTransfer
        const file = dt.files[0]
        readFile(file).then(content =>
            callback({ name: file.name, type: file.type, content })
        )
    })
}