git ssb

0+

ev / minbase



Tree: a82d9b053001af225a6db818036079f377f481d0

Files: a82d9b053001af225a6db818036079f377f481d0 / modules / post.js

1994 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('div.editor',
36 h('a', {href: '#' + data.key}, 'Edit'),
37 h('span#' + data.key,
38 api.message_compose(meta, {text: data.value.content.text})
39 )
40 )
41 } else { return h('span.editor','')}
42 }
43
44 var message =
45 h('div',
46 re(data),
47 h('div.innercontent',
48 h('span.edited', 'Unedited'),
49 markdown(data.value.content.text)
50 )
51 )
52
53 pull(query({query: [{$filter: { value: { author: data.value.author, content: {type: 'edit', edited: data.key}}}}], limit: 100}),
54 pull.collect(function (err, data){
55 if(data[0]) {
56 var fin = data.length
57 for (var i = 0; i < fin; i++) {
58 edited = data[i]
59 message.appendChild(
60 h('div.innercontent',
61 h('span.edited', 'Edited ', timestamp(edited)),
62 markdown(edited.value.content.text)
63 )
64 )
65 }
66 message.appendChild(getEditor(data[fin - 1]))
67 } else {
68 message.appendChild(getEditor(original))
69 }
70 })
71 )
72
73 return message
74 }
75}
76
77
78

Built with git-ssb-web