Commit b6089670d854fcefa6bc5ca05636a801707deb30
add `/data-feed` url to access raw messages being synced
Matt McKegg committed on 11/2/2016, 3:41:17 AMParent: 44e517454ddcdf910952c5689b462967e22fdb75
Files changed
modules/message.js | changed |
modules/data-feed.js | added |
styles/message.mcss | changed |
modules/message.js | |||
---|---|---|---|
@@ -12,8 +12,22 @@ | |||
12 | 12 … | var message_main_meta = plugs.map(exports.message_main_meta = []) | |
13 | 13 … | var message_action = plugs.map(exports.message_action = []) | |
14 | 14 … | var contextMenu = require('../lib/context-menu') | |
15 | 15 … | ||
16 … | +exports.data_render = function (msg) { | ||
17 … | + var div = h('Message -data', { | ||
18 … | + 'ev-contextmenu': contextMenu.bind(null, msg) | ||
19 … | + }, [ | ||
20 … | + messageHeader(msg), | ||
21 … | + h('section', [ | ||
22 … | + h('pre', [ | ||
23 … | + JSON.stringify(msg.value, null, 2) | ||
24 … | + ]) | ||
25 … | + ]) | ||
26 … | + ]) | ||
27 … | + return div | ||
28 … | +} | ||
29 … | + | ||
16 | 30 … | exports.message_render = function (msg, inContext, previousId) { | |
17 | 31 … | var elMini = message_content_mini(msg) | |
18 | 32 … | if (elMini) { | |
19 | 33 … | var div = h('Message', { | |
@@ -55,23 +69,9 @@ | |||
55 | 69 … | element.querySelector('.enter').click() | |
56 | 70 … | } | |
57 | 71 … | } | |
58 | 72 … | }, [ | |
59 | - h('header', [ | ||
60 | - h('div.main', [ | ||
61 | - h('a.avatar', {href: `#${msg.value.author}`}, avatar_image(msg.value.author)), | ||
62 | - h('div.main', [ | ||
63 | - h('div.name', [ | ||
64 | - h('a', {href: `#${msg.value.author}`}, avatar_name(msg.value.author)) | ||
65 | - ]), | ||
66 | - h('div.meta', [ | ||
67 | - message_main_meta(msg), | ||
68 | - ' ', replyInfo | ||
69 | - ]) | ||
70 | - ]) | ||
71 | - ]), | ||
72 | - h('div.meta', message_meta(msg)) | ||
73 | - ]), | ||
73 … | + messageHeader(msg, replyInfo), | ||
74 | 74 … | h('section', [el]), | |
75 | 75 … | when(msg.key, h('footer', [ | |
76 | 76 … | h('div.actions', [ | |
77 | 77 … | message_action(msg), | |
@@ -85,8 +85,26 @@ | |||
85 | 85 … | ||
86 | 86 … | return element | |
87 | 87 … | } | |
88 | 88 … | ||
89 … | +function messageHeader (msg, replyInfo) { | ||
90 … | + return h('header', [ | ||
91 … | + h('div.main', [ | ||
92 … | + h('a.avatar', {href: `#${msg.value.author}`}, avatar_image(msg.value.author)), | ||
93 … | + h('div.main', [ | ||
94 … | + h('div.name', [ | ||
95 … | + h('a', {href: `#${msg.value.author}`}, avatar_name(msg.value.author)) | ||
96 … | + ]), | ||
97 … | + h('div.meta', [ | ||
98 … | + message_main_meta(msg), | ||
99 … | + ' ', replyInfo | ||
100 … | + ]) | ||
101 … | + ]) | ||
102 … | + ]), | ||
103 … | + h('div.meta', message_meta(msg)) | ||
104 … | + ]) | ||
105 … | +} | ||
106 … | + | ||
89 | 107 … | function last (array) { | |
90 | 108 … | if (Array.isArray(array)) { | |
91 | 109 … | return array[array.length - 1] | |
92 | 110 … | } else { |
modules/data-feed.js | ||
---|---|---|
@@ -1,0 +1,32 @@ | ||
1 … | +var h = require('hyperscript') | |
2 … | +var u = require('patchbay/util') | |
3 … | +var pull = require('pull-stream') | |
4 … | +var Scroller = require('pull-scroll') | |
5 … | + | |
6 … | +var plugs = require('patchbay/plugs') | |
7 … | +var sbot_log = plugs.first(exports.sbot_log = []) | |
8 … | +var data_render = plugs.first(exports.data_render = []) | |
9 … | + | |
10 … | +exports.screen_view = function (path, sbot) { | |
11 … | + if(path === '/data-feed') { | |
12 … | + var content = h('div.column.scroller__content') | |
13 … | + var div = h('div.column.scroller', | |
14 … | + {style: {'overflow':'auto'}}, | |
15 … | + h('div.scroller__wrapper', | |
16 … | + content | |
17 … | + ) | |
18 … | + ) | |
19 … | + | |
20 … | + pull( | |
21 … | + u.next(sbot_log, {old: false, limit: 100}), | |
22 … | + Scroller(div, content, data_render, true, false) | |
23 … | + ) | |
24 … | + | |
25 … | + pull( | |
26 … | + u.next(sbot_log, {reverse: true, limit: 100, live: false}), | |
27 … | + Scroller(div, content, data_render, false, false) | |
28 … | + ) | |
29 … | + | |
30 … | + return div | |
31 … | + } | |
32 … | +} |
styles/message.mcss | ||
---|---|---|
@@ -9,8 +9,25 @@ | ||
9 | 9 … | :focus { |
10 | 10 … | z-index: 1 |
11 | 11 … | } |
12 | 12 … | |
13 … | + -data { | |
14 … | + header { | |
15 … | + div.main { | |
16 … | + font-size: 80% | |
17 … | + a.avatar { | |
18 … | + img { | |
19 … | + width: 25px | |
20 … | + } | |
21 … | + } | |
22 … | + } | |
23 … | + } | |
24 … | + (pre) { | |
25 … | + overflow: auto | |
26 … | + max-height: 200px | |
27 … | + } | |
28 … | + } | |
29 … | + | |
13 | 30 … | -reply { |
14 | 31 … | header { |
15 | 32 … | div.main { |
16 | 33 … | a.avatar { |
Built with git-ssb-web