Files: afdcd2c2e04a1a406e0fb9e3efbe92ebfd65e1e2 / lib / depject / channel / async / suggest.js
850 bytesRaw
1 | const nest = require('depnest') |
2 | |
3 | const { onceTrue } = require('mutant') |
4 | |
5 | exports.needs = nest({ |
6 | 'sbot.obs.connection': 'first' |
7 | }) |
8 | |
9 | exports.gives = nest('channel.async.suggest') |
10 | |
11 | exports.create = function (api) { |
12 | return nest('channel.async.suggest', function () { |
13 | return function (text, cb) { |
14 | onceTrue(api.sbot.obs.connection, sbot => { |
15 | sbot.patchwork.channels.suggest({ text, limit: 20 }, (err, items) => { |
16 | if (err) return cb(err) |
17 | cb(null, getSuggestions(items)) |
18 | }) |
19 | }) |
20 | } |
21 | }) |
22 | |
23 | function getSuggestions (items) { |
24 | return items.map(item => { |
25 | return { |
26 | title: `#${item.id}`, |
27 | id: `#${item.id}`, |
28 | subtitle: item.count ? `(${item.count})` : null, |
29 | value: `#${item.id}`, |
30 | cls: 'channel' + (item.subscribed ? ' .-subscribed' : '') |
31 | } |
32 | }) |
33 | } |
34 | } |
35 |
Built with git-ssb-web