git ssb

16+

Dominic / patchbay



Tree: e33a98abcc85d3a3b35c0b2db5b98200b0614954

Files: e33a98abcc85d3a3b35c0b2db5b98200b0614954 / modules_core / file-input.js

1162 bytesRaw
1var u = require('../util')
2var h = require('hyperscript')
3var pull = require('pull-stream')
4var mime = require('simple-mime')('application/octect-stream')
5var split = require('split-buffer')
6
7var plugs = require('../plugs')
8
9var add = plugs.first(exports.sbot_blobs_add = [])
10
11module.exports = {
12 needs: {sbot_blobs_add: 'first'},
13 gives: 'file_input',
14 create: function () {
15 return function FileInput(onAdded) {
16 return h('input', { type: 'file',
17 onchange: function (ev) {
18 var file = ev.target.files[0]
19 if (!file) return
20 var reader = new FileReader()
21 reader.onload = function () {
22 pull(
23 pull.values(split(new Buffer(reader.result), 64*1024)),
24 add(function (err, blob) {
25 if(err) return console.error(err)
26 onAdded({
27 link: blob,
28 name: file.name,
29 size: reader.result.length || reader.result.byteLength,
30 type: mime(file.name)
31 })
32
33 })
34 )
35 }
36 reader.readAsArrayBuffer(file)
37 }
38 })
39 }
40 }
41}
42
43

Built with git-ssb-web