Commit 69a54fb3197c0348818b22c6ba647e80302543de
Modules that give message.html.render also give message.html.canRender to discover if the client knows how to render a message type.
Gordon Martin committed on 10/15/2017, 10:56:59 PMParent: 57aa3f77facebb4078929bc790e72f2ab3ae79fb
Files changed
message/html/render/channel.js | changed |
message/html/render/issue.js | changed |
message/html/render/post.js | changed |
message/html/render/vote.js | changed |
package-lock.json | changed |
package.json | changed |
message/html/render/channel.js | ||
---|---|---|
@@ -10,26 +10,42 @@ | ||
10 | 10 … | markdown: 'first' |
11 | 11 … | } |
12 | 12 … | }) |
13 | 13 … | |
14 | -exports.gives = nest('message.html.render') | |
14 … | +exports.gives = nest({ | |
15 … | + 'message.html': { | |
16 … | + canRender: true, | |
17 … | + render: true | |
18 … | + } | |
19 … | +}) | |
15 | 20 … | |
16 | -exports.create = function (api) { | |
17 | - return nest('message.html.render', channel) | |
21 … | +exports.create = function(api) { | |
22 … | + return nest('message.html', { | |
23 … | + canRender: isRenderable, | |
24 … | + render: channel | |
25 … | + }) | |
18 | 26 … | |
19 | - function channel (msg, opts) { | |
20 | - if (msg.value.content.type !== 'channel') return | |
27 … | + function channel(msg, opts) { | |
28 … | + if (!isRenderable(msg)) return | |
21 | 29 … | var element = api.message.html.layout(msg, extend({ |
22 | 30 … | content: renderContent(msg), |
23 | 31 … | layout: 'mini' |
24 | 32 … | }, opts)) |
25 | 33 … | |
26 | - return api.message.html.decorate(element, { msg }) | |
34 … | + return api.message.html.decorate(element, { | |
35 … | + msg | |
36 … | + }) | |
27 | 37 … | } |
28 | 38 … | |
29 | - function renderContent (msg) { | |
39 … | + function renderContent(msg) { | |
30 | 40 … | var channel = '#' + msg.value.content.channel |
31 | 41 … | return [ |
32 | - msg.value.content.subscribed ? 'subscribed to channel' : 'unsubscribed from channel', ' ', h('a.channel', {href: channel}, channel) | |
42 … | + msg.value.content.subscribed ? 'subscribed to channel' : 'unsubscribed from channel', ' ', h('a.channel', { | |
43 … | + href: channel | |
44 … | + }, channel) | |
33 | 45 … | ] |
34 | 46 … | } |
47 … | + | |
48 … | + function isRenderable(msg) { | |
49 … | + return msg.value.content.type === 'channel' ? true : undefined | |
50 … | + } | |
35 | 51 … | } |
message/html/render/issue.js | ||
---|---|---|
@@ -10,22 +10,36 @@ | ||
10 | 10 … | markdown: 'first' |
11 | 11 … | } |
12 | 12 … | }) |
13 | 13 … | |
14 | -exports.gives = nest('message.html.render') | |
14 … | +exports.gives = nest({ | |
15 … | + 'message.html': { | |
16 … | + canRender: true, | |
17 … | + render: true | |
18 … | + } | |
19 … | +}) | |
15 | 20 … | |
16 | -exports.create = function (api) { | |
17 | - return nest('message.html.render', function renderMessage (msg, opts) { | |
18 | - if (msg.value.content.type !== 'issue') return | |
19 | - var element = api.message.html.layout(msg, extend({ | |
20 | - content: messageContent(msg), | |
21 | - layout: 'default' | |
22 | - }, opts)) | |
21 … | +exports.create = function(api) { | |
22 … | + return nest('message.html', { | |
23 … | + canRender: isRenderable, | |
24 … | + render: function(msg, opts) { | |
25 … | + if (!isRenderable(msg)) return | |
26 … | + var element = api.message.html.layout(msg, extend({ | |
27 … | + content: messageContent(msg), | |
28 … | + layout: 'default' | |
29 … | + }, opts)) | |
23 | 30 … | |
24 | - return api.message.html.decorate(element, { msg }) | |
31 … | + return api.message.html.decorate(element, { | |
32 … | + msg | |
33 … | + }) | |
34 … | + } | |
25 | 35 … | }) |
26 | 36 … | |
27 | - function messageContent (data) { | |
37 … | + function messageContent(data) { | |
28 | 38 … | if (!data.value.content || !data.value.content.text) return |
29 | 39 … | return h('div', {}, api.message.html.markdown(data.value.content)) |
30 | 40 … | } |
41 … | + | |
42 … | + function isRenderable(msg) { | |
43 … | + return msg.value.content.type === 'issue' ? true : undefined | |
44 … | + } | |
31 | 45 … | } |
message/html/render/post.js | ||
---|---|---|
@@ -10,28 +10,42 @@ | ||
10 | 10 … | markdown: 'first' |
11 | 11 … | } |
12 | 12 … | }) |
13 | 13 … | |
14 | -exports.gives = nest('message.html.render') | |
14 … | +exports.gives = nest({ | |
15 … | + 'message.html': { | |
16 … | + canRender: true, | |
17 … | + render: true | |
18 … | + } | |
19 … | +}) | |
15 | 20 … | |
16 | -exports.create = function (api) { | |
17 | - return nest('message.html.render', function renderMessage (msg, opts) { | |
18 | - if (msg.value.content.type !== 'post') return | |
19 | - var element = api.message.html.layout(msg, extend({ | |
20 | - title: messageTitle(msg), | |
21 | - content: msg.isBlocked ? 'Content of a blocked user' : messageContent(msg), | |
22 | - layout: 'default' | |
23 | - }, opts)) | |
21 … | +exports.create = function(api) { | |
22 … | + return nest('message.html', { | |
23 … | + canRender: isRenderable, | |
24 … | + render: function(msg, opts) { | |
25 … | + if (!isRenderable(msg)) return | |
26 … | + var element = api.message.html.layout(msg, extend({ | |
27 … | + title: messageTitle(msg), | |
28 … | + content: msg.isBlocked ? 'Content of a blocked user' : messageContent(msg), | |
29 … | + layout: 'default' | |
30 … | + }, opts)) | |
24 | 31 … | |
25 | - return api.message.html.decorate(element, { msg }) | |
32 … | + return api.message.html.decorate(element, { | |
33 … | + msg | |
34 … | + }) | |
35 … | + } | |
26 | 36 … | }) |
27 | 37 … | |
28 | - function messageContent (data) { | |
38 … | + function isRenderable(msg) { | |
39 … | + return (msg.value.content.type === 'post') ? true : undefined | |
40 … | + } | |
41 … | + | |
42 … | + function messageContent(data) { | |
29 | 43 … | if (!data.value.content || !data.value.content.text) return |
30 | 44 … | return h('div', {}, api.message.html.markdown(data.value.content)) |
31 | 45 … | } |
32 | 46 … | |
33 | - function messageTitle (data) { | |
47 … | + function messageTitle(data) { | |
34 | 48 … | var root = data.value.content && data.value.content.root |
35 | 49 … | return !root ? null : h('span', ['re: ', api.message.html.link(root)]) |
36 | 50 … | } |
37 | 51 … | } |
message/html/render/vote.js | ||
---|---|---|
@@ -10,23 +10,35 @@ | ||
10 | 10 … | markdown: 'first' |
11 | 11 … | } |
12 | 12 … | }) |
13 | 13 … | |
14 | -exports.gives = nest('message.html.render') | |
14 … | +exports.gives = nest({ | |
15 … | + 'message.html': { | |
16 … | + canRender: true, | |
17 … | + render: true | |
18 … | + } | |
19 … | +}) | |
15 | 20 … | |
16 | 21 … | exports.create = function (api) { |
17 | - return nest('message.html.render', vote) | |
22 … | + return nest('message.html', { | |
23 … | + canRender: isRenderable, | |
24 … | + render: vote | |
25 … | + }) | |
18 | 26 … | |
19 | 27 … | function vote (msg, opts) { |
20 | - if (msg.value.content.type !== 'vote') return | |
28 … | + if (!isRenderable(msg)) return | |
21 | 29 … | var element = api.message.html.layout(msg, extend({ |
22 | 30 … | content: renderContent(msg), |
23 | 31 … | layout: 'mini' |
24 | 32 … | }, opts)) |
25 | 33 … | |
26 | 34 … | return api.message.html.decorate(element, { msg }) |
27 | 35 … | } |
28 | 36 … | |
37 … | + function isRenderable(msg) { | |
38 … | + return msg.value.content.type === 'vote' ? true : undefined | |
39 … | + } | |
40 … | + | |
29 | 41 … | function renderContent (msg) { |
30 | 42 … | var link = msg.value.content.vote.link |
31 | 43 … | return [ |
32 | 44 … | msg.value.content.vote.value > 0 ? 'dug' : 'undug', ' ', api.message.html.link(link) |
package-lock.json | |||
---|---|---|---|
@@ -1,7 +1,7 @@ | |||
1 | 1 … | { | |
2 | 2 … | "name": "patchcore", | |
3 | - "version": "1.12.1", | ||
3 … | + "version": "1.13.3", | ||
4 | 4 … | "lockfileVersion": 1, | |
5 | 5 … | "requires": true, | |
6 | 6 … | "dependencies": { | |
7 | 7 … | "acorn": { | |
@@ -670,9 +670,9 @@ | |||
670 | 670 … | "dependencies": { | |
671 | 671 … | "glob": { | |
672 | 672 … | "version": "7.1.2", | |
673 | 673 … | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | |
674 | - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||
674 … | + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", | ||
675 | 675 … | "dev": true, | |
676 | 676 … | "requires": { | |
677 | 677 … | "fs.realpath": "1.0.0", | |
678 | 678 … | "inflight": "1.0.6", | |
@@ -994,9 +994,9 @@ | |||
994 | 994 … | }, | |
995 | 995 … | "glob": { | |
996 | 996 … | "version": "7.1.2", | |
997 | 997 … | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | |
998 | - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||
998 … | + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", | ||
999 | 999 … | "dev": true, | |
1000 | 1000 … | "requires": { | |
1001 | 1001 … | "fs.realpath": "1.0.0", | |
1002 | 1002 … | "inflight": "1.0.6", | |
@@ -1268,9 +1268,9 @@ | |||
1268 | 1268 … | }, | |
1269 | 1269 … | "globals": { | |
1270 | 1270 … | "version": "9.18.0", | |
1271 | 1271 … | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", | |
1272 | - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" | ||
1272 … | + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=" | ||
1273 | 1273 … | }, | |
1274 | 1274 … | "globby": { | |
1275 | 1275 … | "version": "5.0.0", | |
1276 | 1276 … | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", | |
@@ -1287,9 +1287,9 @@ | |||
1287 | 1287 … | "dependencies": { | |
1288 | 1288 … | "glob": { | |
1289 | 1289 … | "version": "7.1.2", | |
1290 | 1290 … | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | |
1291 | - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||
1291 … | + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", | ||
1292 | 1292 … | "dev": true, | |
1293 | 1293 … | "requires": { | |
1294 | 1294 … | "fs.realpath": "1.0.0", | |
1295 | 1295 … | "inflight": "1.0.6", | |
@@ -1301,9 +1301,9 @@ | |||
1301 | 1301 … | }, | |
1302 | 1302 … | "minimatch": { | |
1303 | 1303 … | "version": "3.0.4", | |
1304 | 1304 … | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | |
1305 | - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
1305 … | + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", | ||
1306 | 1306 … | "dev": true, | |
1307 | 1307 … | "requires": { | |
1308 | 1308 … | "brace-expansion": "1.1.8" | |
1309 | 1309 … | } | |
@@ -2193,9 +2193,9 @@ | |||
2193 | 2193 … | "dependencies": { | |
2194 | 2194 … | "glob": { | |
2195 | 2195 … | "version": "7.1.2", | |
2196 | 2196 … | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | |
2197 | - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||
2197 … | + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", | ||
2198 | 2198 … | "dev": true, | |
2199 | 2199 … | "requires": { | |
2200 | 2200 … | "fs.realpath": "1.0.0", | |
2201 | 2201 … | "inflight": "1.0.6", | |
@@ -2207,9 +2207,9 @@ | |||
2207 | 2207 … | }, | |
2208 | 2208 … | "minimatch": { | |
2209 | 2209 … | "version": "3.0.4", | |
2210 | 2210 … | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | |
2211 | - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
2211 … | + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", | ||
2212 | 2212 … | "dev": true, | |
2213 | 2213 … | "requires": { | |
2214 | 2214 … | "brace-expansion": "1.1.8" | |
2215 | 2215 … | } | |
@@ -2285,9 +2285,9 @@ | |||
2285 | 2285 … | "dependencies": { | |
2286 | 2286 … | "glob": { | |
2287 | 2287 … | "version": "7.1.2", | |
2288 | 2288 … | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | |
2289 | - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||
2289 … | + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", | ||
2290 | 2290 … | "dev": true, | |
2291 | 2291 … | "requires": { | |
2292 | 2292 … | "fs.realpath": "1.0.0", | |
2293 | 2293 … | "inflight": "1.0.6", | |
@@ -2299,9 +2299,9 @@ | |||
2299 | 2299 … | }, | |
2300 | 2300 … | "minimatch": { | |
2301 | 2301 … | "version": "3.0.4", | |
2302 | 2302 … | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | |
2303 | - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
2303 … | + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", | ||
2304 | 2304 … | "dev": true, | |
2305 | 2305 … | "requires": { | |
2306 | 2306 … | "brace-expansion": "1.1.8" | |
2307 | 2307 … | } |
Built with git-ssb-web