Files: a41750fd72cc6915cab66dfd5d12958892158a6b / render.js
2270 bytesRaw
1 | var h = require('hyperscript') |
2 | var markdown = require('ssb-markdown') |
3 | var config = require('./config')() |
4 | |
5 | var sbot = require('./scuttlebot') |
6 | var composer = require('./compose') |
7 | |
8 | var tools = require('./rendertools') |
9 | |
10 | module.exports = function (msg) { |
11 | var opts = {} |
12 | opts.root = null |
13 | var message = h('div.message') |
14 | if (msg.value.content.type == 'post') { |
15 | message.appendChild(tools.header(msg)) |
16 | opts.type = 'post' |
17 | if (msg.value.content.root) { |
18 | message.appendChild(h('span', 're: ', tools.messageLink(msg.value.content.root))) |
19 | opts.root = msg.value.content.root |
20 | } else { opts.root = msg.key} |
21 | message.appendChild(h('div.message__body', |
22 | {innerHTML: markdown.block(msg.value.content.text, {toUrl: function (url, image) { |
23 | if(url[0] == '%' || url[0] == '@') return '#' + url |
24 | if(!image) return url |
25 | if(url[0] !== '&') return url |
26 | return config.blobsUrl + url |
27 | }})} |
28 | ) |
29 | ) |
30 | message.appendChild(h('button.btn', 'Reply', { |
31 | onclick: function () { |
32 | var compose = composer(opts) |
33 | message.replaceChild(compose, message.lastElementChild) |
34 | } |
35 | })) |
36 | return message |
37 | } else if (msg.value.content.type == 'vote') { |
38 | message.appendChild(tools.header(msg)) |
39 | var embed = msg.value.content.vote.link |
40 | |
41 | var embedded = h('div.embedded') |
42 | sbot.get(embed, function (err, msg) { |
43 | if (err) {console.log('could not find message locally, try ooo?') } |
44 | msg.value = msg |
45 | msg.key = embed |
46 | if (msg.value.content.text) { |
47 | message.appendChild(embedded) |
48 | embedded.appendChild(tools.header(msg)) |
49 | embedded.appendChild(h('div.message__body', |
50 | {innerHTML: markdown.block(msg.value.content.text.substring(0, 256) + '... ', {toUrl: function (url, image) { |
51 | if(url[0] == '@') return '#' + url |
52 | if(url[0] == '%') return '#' + url |
53 | if(!image) return url |
54 | if(url[0] !== '&') return url |
55 | return config.blobsUrl + url |
56 | }})}, tools.messageLink(msg.key) |
57 | )) |
58 | } |
59 | }) |
60 | return message |
61 | } else { |
62 | //message.appendChild(tools.header(msg)) |
63 | //message.appendChild(h('pre', tools.rawJSON(msg.value.content))) |
64 | //return message |
65 | return |
66 | } |
67 | } |
68 |
Built with git-ssb-web