Commit ead5d15c75ce6e84eb01e6e0f16ba10e3552d905
add "All Posts" view (via /all search)
#444 closes #517Matt McKegg committed on 4/23/2017, 1:01:49 AM
Parent: 54d70439428e8fd11338aa37918eeab2dbd9f31a
Files changed
modules/page/html/render/all.js | added |
modules/page/html/render/all.js | |||
---|---|---|---|
@@ -1,0 +1,61 @@ | |||
1 … | +var nest = require('depnest') | ||
2 … | +var { h } = require('mutant') | ||
3 … | +var extend = require('xtend') | ||
4 … | +var pull = require('pull-stream') | ||
5 … | + | ||
6 … | +exports.needs = nest({ | ||
7 … | + 'sbot.pull.feed': 'first', | ||
8 … | + 'message.html.compose': 'first', | ||
9 … | + 'message.async.publish': 'first', | ||
10 … | + 'feed.html.rollup': 'first' | ||
11 … | +}) | ||
12 … | + | ||
13 … | +exports.gives = nest({ | ||
14 … | + 'page.html.render': true | ||
15 … | +}) | ||
16 … | + | ||
17 … | +exports.create = function (api) { | ||
18 … | + return nest('page.html.render', page) | ||
19 … | + | ||
20 … | + function page (path) { | ||
21 … | + if (path !== '/all') return // "/" is a sigil for "page" | ||
22 … | + | ||
23 … | + var prepend = [ | ||
24 … | + h('PageHeading', [ | ||
25 … | + h('h1', [ | ||
26 … | + 'All Posts from Your ', | ||
27 … | + h('strong', 'Extended Network') | ||
28 … | + ]) | ||
29 … | + ]), | ||
30 … | + api.message.html.compose({ meta: { type: 'post' }, placeholder: 'Write a public message' }) | ||
31 … | + ] | ||
32 … | + | ||
33 … | + var feedView = api.feed.html.rollup(getFeed, { | ||
34 … | + prepend, | ||
35 … | + windowSize: 1000 | ||
36 … | + }) | ||
37 … | + | ||
38 … | + var result = h('div.SplitView', [ | ||
39 … | + h('div.main', feedView) | ||
40 … | + ]) | ||
41 … | + | ||
42 … | + result.pendingUpdates = feedView.pendingUpdates | ||
43 … | + result.reload = feedView.reload | ||
44 … | + | ||
45 … | + return result | ||
46 … | + | ||
47 … | + function getFeed (opts) { | ||
48 … | + if (opts.lt) { | ||
49 … | + opts = extend(opts, {lt: parseInt(opts.lt, 10)}) | ||
50 … | + } | ||
51 … | + | ||
52 … | + return pull( | ||
53 … | + api.sbot.pull.feed(opts), | ||
54 … | + pull.map((msg) => { | ||
55 … | + if (msg.sync) return msg | ||
56 … | + return {key: msg.key, value: msg.value, timestamp: msg.value.timestamp} | ||
57 … | + }) | ||
58 … | + ) | ||
59 … | + } | ||
60 … | + } | ||
61 … | +} |
Built with git-ssb-web