2019-02-20 16:10:37 +00:00
|
|
|
const m = require('mithril')
|
2019-02-22 14:53:43 +00:00
|
|
|
const { uploadMedia } = require('../api/media')
|
|
|
|
|
|
|
|
const FileUpload = {
|
|
|
|
uploadFile(vnode, event) {
|
|
|
|
if (!event.target.files[0]) return
|
|
|
|
vnode.state.loading = true
|
|
|
|
|
|
|
|
uploadMedia(event.target.files[0])
|
|
|
|
.then(function(res) {
|
|
|
|
vnode.state.media = res
|
|
|
|
console.log(vnode.state.media)
|
|
|
|
})
|
|
|
|
.catch(function(err) {
|
|
|
|
console.log(err)
|
|
|
|
})
|
|
|
|
.then(function() {
|
|
|
|
vnode.state.loading = false
|
|
|
|
m.redraw()
|
|
|
|
})
|
|
|
|
},
|
2019-02-20 16:10:37 +00:00
|
|
|
|
|
|
|
oninit: function(vnode) {
|
2019-02-22 14:53:43 +00:00
|
|
|
vnode.state.loading = false
|
2019-02-20 16:10:37 +00:00
|
|
|
vnode.state.media = null
|
|
|
|
vnode.state.error = ''
|
|
|
|
},
|
|
|
|
|
|
|
|
view: function(vnode) {
|
|
|
|
let media = vnode.state.media
|
|
|
|
|
|
|
|
return m('fileupload', [
|
|
|
|
(media ?
|
2019-02-22 14:53:43 +00:00
|
|
|
m('a.display', {
|
2019-02-20 16:10:37 +00:00
|
|
|
href: media.large_url,
|
|
|
|
style: {
|
|
|
|
'background-image': 'url(' + media.medium_url + ')',
|
|
|
|
}
|
|
|
|
}) :
|
2019-02-22 14:53:43 +00:00
|
|
|
m('div.showicon')
|
2019-02-20 16:10:37 +00:00
|
|
|
),
|
2019-02-22 14:53:43 +00:00
|
|
|
m('input', {
|
|
|
|
accept: 'image/*',
|
|
|
|
type: 'file',
|
|
|
|
onchange: FileUpload.uploadFile.bind(this, vnode),
|
|
|
|
}),
|
|
|
|
(vnode.state.loading ? m('div.loading-spinner') : null),
|
2019-02-20 16:10:37 +00:00
|
|
|
])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-22 14:53:43 +00:00
|
|
|
module.exports = FileUpload
|