git ssb

0+

ev / minbase



Tree: 3ee0398629a78832c2fbe78831ce756faeaeca74

Files: 3ee0398629a78832c2fbe78831ce756faeaeca74 / modules / post.js

1866 bytesRaw
1var h = require('hyperscript')
2var messageLink = require('./helpers').message_link
3var markdown = require('./helpers').markdown
4
5var pull = require('pull-stream')
6
7var query = require('./scuttlebot').query
8var id = require('./../keys').id
9var timestamp = require('./helpers').timestamp
10
11exports.gives = 'message_content'
12
13exports.needs = {message_compose: 'first' }
14
15exports.create = function (api) {
16 return function (data) {
17 if(!data.value.content || !data.value.content.text) return
18 if(data.value.content.type === 'edit') return
19
20 function re (data) {
21 var root = data.value.content.root
22 if (root)
23 return h('span', 're: ', messageLink(root))
24 }
25
26 var meta = {
27 type: 'edit',
28 edited: data.key
29 }
30
31 var original = data
32
33 function getEditor (data) {
34 if (data.value.author == id) {
35 return h('span.editor', api.message_compose(meta, {text: data.value.content.text}))
36 } else { return h('span.editor','')}
37 }
38
39 var message = h('div', re(data), h('div.innercontent', h('span.edited', 'Unedited'), markdown(data.value.content.text)))
40
41 pull(query({query: [{$filter: { value: { author: data.value.author, content: {type: 'edit', edited: data.key}}}}], limit: 100}),
42 pull.collect(function (err, data){
43 if(data[0]) {
44 var fin = data.length
45 for (var i = 0; i < fin; i++) {
46 edited = data[i]
47 message.appendChild(
48 h('div.innercontent',
49 h('span.edited',
50 'Edited ',
51 timestamp(edited)),
52 markdown(edited.value.content.text)
53 )
54 )
55 }
56 message.appendChild(getEditor(data[fin - 1]))
57 } else {
58 message.appendChild(getEditor(original))
59 }
60 })
61 )
62
63 return message
64
65 }
66}
67
68
69
70
71
72
73
74
75
76
77
78
79
80

Built with git-ssb-web