Commit 7c22ec2ce201b04fa7c787e4f7833eb28065327b
meta message styling, more legible raw message
mix irving committed on 2/4/2017, 8:57:02 AMParent: 652e17c6ca36341c8b5f36c66780d9bae9bfc721
Files changed
modules_basic/like.js | changed |
modules_basic/message/render.js | changed |
modules_basic/message/render.mcss | changed |
modules_extra/channel.js | changed |
modules_extra/raw.js | changed |
modules_basic/like.js | ||
---|---|---|
@@ -39,20 +39,20 @@ | ||
39 | 39 … | )) |
40 | 40 … | votes.push({source: CACHE[k].author, dest: k, rel: 'vote'}) |
41 | 41 … | } |
42 | 42 … | |
43 | - if(votes.length === 1) | |
44 | - digs.textContent = ' 1 Dig' | |
45 | - else if(votes.length > 1) | |
46 | - digs.textContent = ' ' + votes.length + ' Digs' | |
43 … | + if (votes.length === 0) return | |
47 | 44 … | |
45 … | + digs.textContent = votes.length > 4 | |
46 … | + ? votes.length + ' 🗸' | |
47 … | + : Array(votes.length).fill('🗸').join('') | |
48 … | + | |
48 | 49 … | pull( |
49 | - pull.values(votes.map(vote => { | |
50 | - return api.avatar_name(vote.source) | |
51 | - })), | |
52 | - pull.collect(function (err, ary) { | |
53 | - digs.title = ary.map(x => x.innerHTML).join(" ") | |
54 | - }) | |
50 … | + pull.values(votes.map(vote => api.avatar_name(vote.source))), | |
51 … | + pull.collect((err, ary) => { | |
52 … | + if (err) console.error(err) | |
53 … | + digs.title = 'Dug by:\n' + ary.map(x => x.innerHTML).join("\n") | |
54 … | + }) | |
55 | 55 … | ) |
56 | 56 … | |
57 | 57 … | return digs |
58 | 58 … | } |
modules_basic/message/render.js | ||
---|---|---|
@@ -41,8 +41,9 @@ | ||
41 | 41 … | h('header.author', api.message_author(msg)), |
42 | 42 … | h('section.title', api.message_title(msg)), |
43 | 43 … | h('section.meta', api.message_meta(msg)), |
44 | 44 … | h('section.content', content), |
45 … | + h('section.raw-content'), | |
45 | 46 … | h('section.action', api.message_action(msg)), |
46 | 47 … | h('footer.backlinks', api.message_backlinks(msg)) |
47 | 48 … | ]) |
48 | 49 … | return msgEl |
@@ -74,9 +75,10 @@ | ||
74 | 75 … | } |
75 | 76 … | }, [ |
76 | 77 … | h('header.author', api.message_author(msg, { size: 'mini' })), |
77 | 78 … | h('section.meta', api.message_meta(msg)), |
78 | - h('section.content', el) | |
79 … | + h('section.content', el), | |
80 … | + h('section.raw-content') | |
79 | 81 … | ]) |
80 | 82 … | } |
81 | 83 … | } |
82 | 84 … |
modules_basic/message/render.mcss | ||
---|---|---|
@@ -19,17 +19,16 @@ | ||
19 | 19 … | } |
20 | 20 … | |
21 | 21 … | section.meta { |
22 | 22 … | display: flex |
23 … | + align-items: center | |
24 … | + * { | |
25 … | + margin-left: .4rem | |
26 … | + } | |
27 … | + | |
23 | 28 … | a { |
24 | - margin-left: .2rem | |
25 | 29 … | $textSubtle |
26 | 30 … | } |
27 | - | |
28 | - input{ | |
29 | - margin-right: 0 | |
30 | - order: 99 | |
31 | - } | |
32 | 31 … | } |
33 | 32 … | |
34 | 33 … | section.content { |
35 | 34 … | flex-basis: 100% |
@@ -38,8 +37,24 @@ | ||
38 | 37 … | max-width: 100% |
39 | 38 … | } |
40 | 39 … | } |
41 | 40 … | |
41 … | + section.raw-content { | |
42 … | + margin-left: -7rem | |
43 … | + flex-basis: 130% | |
44 … | + pre { | |
45 … | + border: 1px gainsboro solid | |
46 … | + padding: .8rem | |
47 … | + | |
48 … | + span { | |
49 … | + font-weight: 600 | |
50 … | + } | |
51 … | + a { | |
52 … | + word-break: break-all | |
53 … | + } | |
54 … | + } | |
55 … | + } | |
56 … | + | |
42 | 57 … | section.action { |
43 | 58 … | flex-basis: 100% |
44 | 59 … | display: flex |
45 | 60 … | justify-content: flex-end |
@@ -75,6 +90,11 @@ | ||
75 | 90 … | |
76 | 91 … | section.meta { |
77 | 92 … | order: 2 |
78 | 93 … | } |
94 … | + | |
95 … | + section.raw-content { | |
96 … | + order: 3 | |
97 … | + margin-left: 0 | |
98 … | + } | |
79 | 99 … | } |
80 | 100 … | } |
modules_extra/channel.js | ||
---|---|---|
@@ -40,9 +40,12 @@ | ||
40 | 40 … | |
41 | 41 … | function message_meta (msg) { |
42 | 42 … | var chan = msg.value.content.channel |
43 | 43 … | if (chan) |
44 | - return h('a', {href: '##'+chan}, '#'+chan) | |
44 … | + return h('a', { | |
45 … | + href: '##'+chan, | |
46 … | + order: 98 | |
47 … | + }, '#'+chan) | |
45 | 48 … | } |
46 | 49 … | |
47 | 50 … | function screen_view (path) { |
48 | 51 … | if(path[0] === '#') { |
modules_extra/raw.js | ||
---|---|---|
@@ -1,40 +1,37 @@ | ||
1 | 1 … | var h = require('hyperscript') |
2 | 2 … | |
3 | -// from ssb-ref | |
4 | -var refRegex = /((?:@|%|&)[A-Za-z0-9\/+]{43}=\.[\w\d]+)/g | |
5 | - | |
6 | 3 … | exports.gives = 'message_meta' |
7 | 4 … | |
8 | -function linkify (text) { | |
9 | - var arr = text.split(refRegex) | |
10 | - for (var i = 1; i < arr.length; i += 2) { | |
11 | - arr[i] = h('a', {href: '#' + arr[i]}, arr[i]) | |
12 | - } | |
13 | - return arr | |
14 | -} | |
15 | 5 … | |
16 | 6 … | exports.create = function (api) { |
17 | 7 … | return function (msg) { |
18 | 8 … | var tmp = h('div') |
19 | 9 … | var el |
20 | 10 … | var pre |
21 | - return h('input', { | |
22 | - type: 'checkbox', | |
23 | - title: 'View Data', | |
11 … | + const symbol = '⛭' | |
12 … | + var clicked = false | |
13 … | + | |
14 … | + return h('a', { | |
15 … | + title: 'View raw data', | |
16 … | + style: { | |
17 … | + order: 99, | |
18 … | + color: 'gray', | |
19 … | + 'font-size': '1rem', | |
20 … | + cursor: 'pointer', | |
21 … | + }, | |
24 | 22 … | onclick: function () { |
23 … | + clicked = !clicked | |
24 … | + | |
25 | 25 … | // HACK (mw) yo we need a better way to replace the content |
26 | 26 … | var msgEl = this.parentNode.parentNode |
27 | - var msgContentEl = msgEl.querySelector('.\\.content') | |
28 | - if (this.checked) { | |
27 … | + var msgContentEl = msgEl.querySelector('.\\.raw-content') | |
28 … | + if (clicked) { | |
29 | 29 … | // move away the content |
30 | 30 … | while (el = msgContentEl.firstChild) |
31 | 31 … | tmp.appendChild(el) |
32 | 32 … | // show the raw stuff |
33 | - if (!pre) pre = h('pre', linkify(JSON.stringify({ | |
34 | - key: msg.key, | |
35 | - value: msg.value | |
36 | - }, 0, 2))) | |
33 … | + if (!pre) pre = h('pre', buildRawMsg(msg) ) | |
37 | 34 … | msgContentEl.appendChild(pre) |
38 | 35 … | } else { |
39 | 36 … | // hide the raw stuff |
40 | 37 … | msgContentEl.removeChild(pre) |
@@ -42,8 +39,45 @@ | ||
42 | 39 … | while (el = tmp.firstChild) |
43 | 40 … | msgContentEl.appendChild(el) |
44 | 41 … | } |
45 | 42 … | } |
46 | - }) | |
43 … | + }, symbol) | |
47 | 44 … | } |
48 | 45 … | } |
49 | 46 … | |
47 … | + | |
48 … | +function buildRawMsg (msg) { | |
49 … | + return colorKeys(linkify( | |
50 … | + JSON.stringify({ | |
51 … | + key: msg.key, | |
52 … | + value: msg.value | |
53 … | + }, 0, 2) | |
54 … | + )) | |
55 … | +} | |
56 … | + | |
57 … | +function colorKeys (chunks) { | |
58 … | + var newArray = [] | |
59 … | + chunks.forEach(chunk => { | |
60 … | + if (typeof chunk !== 'string') return newArray.push(chunk) | |
61 … | + | |
62 … | + var arr = chunk.split(/("[^"]+":)/) | |
63 … | + for (var i = 1; i < arr.length; i += 2) { | |
64 … | + arr[i] = h('span', arr[i]) | |
65 … | + } | |
66 … | + newArray = [...newArray, ...arr] | |
67 … | + }) | |
68 … | + | |
69 … | + return newArray | |
70 … | +} | |
71 … | + | |
72 … | +function linkify (text) { | |
73 … | + // from ssb-ref | |
74 … | + var refRegex = /((?:@|%|&)[A-Za-z0-9\/+]{43}=\.[\w\d]+)/g | |
75 … | + | |
76 … | + var arr = text.split(refRegex) | |
77 … | + for (var i = 1; i < arr.length; i += 2) { | |
78 … | + arr[i] = h('a', {href: '#' + arr[i]}, arr[i]) | |
79 … | + } | |
80 … | + return arr | |
81 … | +} | |
82 … | + | |
83 … | + |
Built with git-ssb-web