git ssb

2+

ev / mvd



Tree: c3d955a4466234611233406947bb60ad93b2f19c

Files: c3d955a4466234611233406947bb60ad93b2f19c / render.js

3190 bytesRaw
1var h = require('hyperscript')
2var config = require('./config')()
3
4var pull = require('pull-stream')
5
6var sbot = require('./scuttlebot')
7var composer = require('./compose')
8
9var tools = require('./tools')
10
11var id = require('./keys').id
12
13module.exports = function (msg) {
14 var opts = {}
15 opts.root = null
16 var message = h('div.message')
17
18
19 if (msg.value.content.type == 'post') {
20 opts.type = 'post'
21 opts.branch = msg.key
22
23 message.appendChild(tools.header(msg))
24
25 if (msg.value.content.root) {
26 message.appendChild(h('span', 're: ', tools.messageLink(msg.value.content.root)))
27 opts.root = msg.value.content.root
28 } else { opts.root = msg.key }
29
30
31 message.appendChild(
32 h('div.message__body', tools.markdown(msg.value.content.text))
33 )
34
35 if (msg.value.author == id) {
36 opts.type = 'update'
37 opts.updated = msg.key
38 opts.messageText = msg.value.content.text
39 pull(
40 sbot.query({query: [{$filter: {value: {content: {type: 'update', updated: msg.key}}}}]}),
41 pull.drain(function (update) {
42 var latest = h('div.message__body', tools.markdown(update.value.content.text))
43 message.replaceChild(latest, message.childNodes[2])
44 opts.messageText = update.value.content.text
45 })
46
47 )
48
49
50 if (msg.value.content.original)
51 opts.original = msg.value.content.original
52 else
53 opts.original = msg.key
54 message.appendChild(h('button.btn', 'Edit', {
55 onclick: function () {
56 var compose = h('div.message', composer(opts))
57 message.parentNode.replaceChild(compose, message)
58 }
59 }))
60 } else {
61 opts.type = 'post'
62 opts.branch = msg.key
63
64 pull(
65 sbot.query({query: [{$filter: {value: {content: {type: 'update', updated: msg.key}}}}]}),
66 pull.drain(function (data) {
67 console.log(data)
68 var latest = h('div.message__body', tools.markdown(data.value.content.text))
69 message.replaceChild(latest, message.childNodes[2])
70 })
71
72 )
73
74
75 message.appendChild(h('button.btn', 'Reply', {
76 onclick: function () {
77 var compose = composer(opts)
78 message.replaceChild(compose, message.lastElementChild)
79 }
80 }))
81 }
82 return message
83 } else if (msg.value.content.type == 'vote') {
84 message.appendChild(tools.header(msg))
85 var embed = msg.value.content.vote.link
86
87 var embedded = h('div.embedded')
88 sbot.get(embed, function (err, msg) {
89 if (err) {console.log('could not find message locally, try ooo?') }
90 msg.value = msg
91 msg.key = embed
92 if (msg.value.content.text) {
93 message.appendChild(embedded)
94 embedded.appendChild(tools.header(msg))
95 embedded.appendChild(
96 h('div.message__body',
97 tools.markdown(msg.value.content.text.substring(0, 256) + '...'),
98 h('span', '[', h('a', {href: '#' + msg.key}, 'Full Post'), ']')
99 )
100 )
101 }
102 })
103 return message
104 } else {
105 message.appendChild(tools.header(msg))
106 message.appendChild(h('pre', tools.rawJSON(msg.value.content)))
107 return message
108 //return
109 }
110}
111

Built with git-ssb-web