git ssb

0+

alanz / patchwork



forked from Matt McKegg / patchwork

Tree: dbcaed4a38e2a45014c7a8a7e73a0b5e53164c31

Files: dbcaed4a38e2a45014c7a8a7e73a0b5e53164c31 / plugs / message / html / render / following.js

1360 bytesRaw
1var h = require('mutant/h')
2var nest = require('depnest')
3var extend = require('xtend')
4var ref = require('ssb-ref')
5
6exports.needs = nest({
7 'message.html': {
8 decorate: 'reduce',
9 layout: 'first'
10 },
11 'profile.html.person': 'first',
12 'intl.sync.i18n': 'first',
13})
14
15exports.gives = nest('message.html.render')
16
17exports.create = function (api) {
18 const i18n = api.intl.sync.i18n
19 return nest('message.html.render', function renderMessage (msg, opts) {
20 if (msg.value.content.type !== 'contact') return
21 if (!ref.isFeed(msg.value.content.contact)) return
22 if (typeof msg.value.content.following !== 'boolean' && typeof msg.value.content.blocking !== 'boolean') return
23
24 var element = api.message.html.layout(msg, extend({
25 miniContent: messageContent(msg),
26 layout: 'mini'
27 }, opts))
28
29 return api.message.html.decorate(element, { msg })
30 })
31
32 function messageContent (msg) {
33 var following = msg.value.content.following
34 var blocking = msg.value.content.blocking
35
36 if (typeof blocking === 'boolean') {
37 return [
38 blocking ? i18n('blocked ') : i18n('unblocked '),
39 api.profile.html.person(msg.value.content.contact)
40 ]
41 } else {
42 return [
43 following ? i18n('followed ') : i18n('unfollowed '),
44 api.profile.html.person(msg.value.content.contact)
45 ]
46 }
47 }
48}
49

Built with git-ssb-web