git ssb

0+

ev / minbase



Tree: b62ecd6f843b26f37e70c7b6d65c71db35bbf922

Files: b62ecd6f843b26f37e70c7b6d65c71db35bbf922 / modules / raw.js

1365 bytesRaw
1var h = require('hyperscript')
2var u = require('../util')
3var pull = require('pull-stream')
4var Scroller = require('../pull-scroll')
5
6var plugs = require('../plugs')
7
8// from ssb-ref
9var refRegex = /((?:@|%|&)[A-Za-z0-9\/+]{43}=\.[\w\d]+)/g
10
11exports.gives = 'message_meta'
12
13function linkify (text) {
14 var arr = text.split(refRegex)
15 for (var i = 1; i < arr.length; i += 2) {
16 arr[i] = h('a', {href: '#' + arr[i]}, arr[i])
17 }
18 return arr
19}
20
21exports.create = function (api) {
22 return function (msg) {
23 var tmp = h('div')
24 var el
25 var pre
26 return h('input', {
27 type: 'checkbox',
28 title: 'View Data',
29 onclick: function () {
30 var msgEl = this.parentNode.parentNode.parentNode
31 var msgContentEl = msgEl.querySelector('.message_content')
32 if (this.checked) {
33 // move away the content
34 while (el = msgContentEl.firstChild)
35 tmp.appendChild(el)
36 // show the raw stuff
37 if (!pre) pre = h('pre', linkify(JSON.stringify({
38 key: msg.key,
39 value: msg.value
40 }, 0, 2)))
41 msgContentEl.appendChild(pre)
42 } else {
43 // hide the raw stuff
44 msgContentEl.removeChild(pre)
45 // put back the content
46 while (el = tmp.firstChild)
47 msgContentEl.appendChild(el)
48 }
49 }
50 })
51 }
52}
53
54

Built with git-ssb-web