Something went wrong. Try again.
secure-scuttlebot classic
Something went wrong. Try again.
3.3 kB · 122 lines
JavaScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123var h = require('hyperscript')var u = require('../util')var pull = require('pull-stream')
//var plugs = require('../plugs')////var message_content = plugs.first(exports.message_content = [])//var message_content_mini = plugs.first(exports.message_content_mini = [])////var avatar = plugs.first(exports.avatar = [])//var avatar_name = plugs.first(exports.avatar_name = [])//var avatar_link = plugs.first(exports.avatar_link = [])//var message_meta = plugs.map(exports.message_meta = [])//var message_action = plugs.map(exports.message_action = [])//var message_link = plugs.first(exports.message_link = [])////var sbot_links = plugs.first(exports.sbot_links = [])
exports.needs = { message_content: 'first', message_content_mini: 'first', avatar: 'first', avatar_name: 'first', avatar_link: 'first', message_meta: 'map', message_action: 'map', message_link: 'first',// sbot_links: 'first'}
exports.gives = 'message_render'
function message_content_mini_fallback(msg) { return h('code', msg.value.content.type)}
exports.create = function (api) {
function mini(msg, el) { var div = h('div.message.message--mini', h('div.row', h('div', api.avatar_link(msg.value.author, api.avatar_name(msg.value.author)), h('span.message_content', el)), h('div.message_meta.row', api.message_meta(msg)) ) ) div.setAttribute('tabindex', '0') return div }
return function (msg, sbot) { var el = api.message_content_mini(msg) if(el) return mini(msg, el)
var el = api.message_content(msg) if(!el) return mini(msg, message_content_mini_fallback(msg))
var links = [] for(var k in CACHE) { var _msg = CACHE[k] if(Array.isArray(_msg.content.mentions)) { for(var i = 0; i < _msg.content.mentions.length; i++) if(_msg.content.mentions[i].link == msg.key) links.push(k) } }
var backlinks = h('div.backlinks') if(links.length) backlinks.appendChild(h('label', 'backlinks:', h('div', links.map(function (key) { return api.message_link(key) })) ))
// pull( // sbot_links({dest: msg.key, rel: 'mentions', keys: true}), // pull.collect(function (err, links) { // if(links.length) // backlinks.appendChild(h('label', 'backlinks:', // h('div', links.map(function (link) { // return message_link(link.key) // })) // )) // }) // )
var msg = h('div.message', h('div.title.row', h('div.avatar', api.avatar(msg.value.author, 'thumbnail')), h('div.message_meta.row', api.message_meta(msg)) ), h('div.message_content', el), h('div.message_actions.row', h('div.actions', api.message_action(msg), h('a', {href: '#' + msg.key}, 'Reply') ) ), backlinks, {onkeydown: function (ev) { //on enter, hit first meta. if(ev.keyCode == 13) {
// unless in an input if (ev.target.nodeName === 'INPUT' || ev.target.nodeName === 'TEXTAREA') return
msg.querySelector('.enter').click() } }} )
// ); hyperscript does not seem to set attributes correctly. msg.setAttribute('tabindex', '0')
return msg }}