sbot/ui/lib/com/composer.js

43 lines
1.1 KiB
JavaScript
Raw Normal View History

'use strict'
var h = require('hyperscript')
var o = require('observable')
var com = require('./index')
module.exports = function (rootMsg, branchMsg, opts) {
var selection = o('post')
function navitem (icon, value) {
return o.transform(selection, function (s) {
return h('a'+((s == value) ? '.selected' : ''), { onclick: onSelect(value) }, com.icon(icon))
})
}
// markup
var header = h('.composer-header',
h('.composer-header-nav',
navitem('comment', 'post'),
navitem('facetime-video', 'webcam')
// navitem('picture', 'image')
),
h('.composer-header-body', o.transform(selection, function (s) {
if (s == 'post')
return com.postForm(rootMsg, branchMsg, { onpost: opts.onpost, noheader: true })
if (s == 'webcam')
return com.webcamGifferForm(rootMsg, branchMsg, { onpost: opts.onpost })
if (s == 'image')
return com.imagesForm()
}))
)
// handlers
function onSelect (value) {
return function (e) {
e.preventDefault()
selection(value)
}
}
return header
}