Commit 92f21680230af434fa835cd7d38953a9e0320410
initial mutable messages
Ev Bogue committed on 5/2/2018, 5:57:15 PMParent: 30b8296223f75e62735b9a3b804ff6d9f7c27697
Files changed
bin.js | changed |
compose.js | changed |
render.js | changed |
tools.js | changed |
bin.js | ||
---|---|---|
@@ -32,9 +32,8 @@ | ||
32 | 32 … | .use(require('scuttlebot/plugins/replicate')) |
33 | 33 … | .use(require('ssb-friends')) |
34 | 34 … | .use(require('ssb-blobs')) |
35 | 35 … | .use(require('ssb-query')) |
36 | - .use(require('ssb-backlinks')) | |
37 | 36 … | .use(require('ssb-links')) |
38 | 37 … | .use(require('ssb-ebt')) |
39 | 38 … | .use(require('ssb-ooo')) |
40 | 39 … | .use(require('scuttlebot/plugins/invite')) |
compose.js | ||
---|---|---|
@@ -41,10 +41,12 @@ | ||
41 | 41 … | |
42 | 42 … | var composer = h('div.composer') |
43 | 43 … | |
44 | 44 … | var container = h('div.container') |
45 | - | |
46 | - var textarea = h('textarea.compose', {placeholder: 'Write a message' || opts.placeholder}) | |
45 … | + if (opts.messageText) | |
46 … | + var textarea = h('textarea.compose', opts.messageText) | |
47 … | + else | |
48 … | + var textarea = h('textarea.compose', {placeholder: 'Write a message' || opts.placeholder}) | |
47 | 49 … | |
48 | 50 … | var initialButtons = h('span', |
49 | 51 … | h('button.btn', 'Preview', { |
50 | 52 … | onclick: function () { |
@@ -53,12 +55,16 @@ | ||
53 | 55 … | msg.value = { |
54 | 56 … | "author": id, |
55 | 57 … | "content": { |
56 | 58 … | "type": opts.type, |
57 | - "root": opts.root, | |
58 | - "branch": opts.branch | |
59 … | + "root": opts.root | |
59 | 60 … | } |
60 | 61 … | } |
62 … | + if (opts.original) | |
63 … | + msg.value.content.original = opts.original | |
64 … | + if (opts.updated) | |
65 … | + msg.value.content.updated = opts.updated | |
66 … | + | |
61 | 67 … | msg.value.content.text = textarea.value |
62 | 68 … | console.log(msg) |
63 | 69 … | |
64 | 70 … | var preview = h('div', |
render.js | ||
---|---|---|
@@ -7,17 +7,17 @@ | ||
7 | 7 … | var composer = require('./compose') |
8 | 8 … | |
9 | 9 … | var tools = require('./tools') |
10 | 10 … | |
11 … | +var id = require('./keys').id | |
12 … | + | |
11 | 13 … | module.exports = function (msg) { |
12 | 14 … | var opts = {} |
13 | 15 … | opts.root = null |
14 | 16 … | var message = h('div.message') |
15 | 17 … | |
16 | 18 … | |
17 | 19 … | if (msg.value.content.type == 'post') { |
18 | - | |
19 | - | |
20 | 20 … | opts.type = 'post' |
21 | 21 … | opts.branch = msg.key |
22 | 22 … | |
23 | 23 … | message.appendChild(tools.header(msg)) |
@@ -30,15 +30,56 @@ | ||
30 | 30 … | |
31 | 31 … | message.appendChild( |
32 | 32 … | h('div.message__body', tools.markdown(msg.value.content.text)) |
33 | 33 … | ) |
34 … | + | |
35 … | + if (msg.value.author == id) { | |
36 … | + opts.type = 'update' | |
37 … | + opts.updated = msg.key | |
38 … | + opts.messageText = msg.value.content.text | |
39 … | + pull( | |
40 … | + sbot.query({query: [{$filter: {value: {content: {type: 'update', updated: msg.key}}}}]}), | |
41 … | + pull.drain(function (update) { | |
42 … | + var latest = h('div.message__body', tools.markdown(update.value.content.text)) | |
43 … | + message.replaceChild(latest, message.childNodes[2]) | |
44 … | + opts.messageText = update.value.content.text | |
45 … | + }) | |
34 | 46 … | |
35 | - message.appendChild(h('button.btn', 'Reply', { | |
36 | - onclick: function () { | |
37 | - var compose = composer(opts) | |
38 | - message.replaceChild(compose, message.lastElementChild) | |
39 | - } | |
40 | - })) | |
47 … | + ) | |
48 … | + | |
49 … | + | |
50 … | + if (msg.value.content.original) | |
51 … | + opts.original = msg.value.content.original | |
52 … | + else | |
53 … | + opts.original = msg.key | |
54 … | + message.appendChild(h('button.btn', 'Edit', { | |
55 … | + onclick: function () { | |
56 … | + var compose = h('div.message', composer(opts)) | |
57 … | + message.parentNode.replaceChild(compose, message) | |
58 … | + } | |
59 … | + })) | |
60 … | + } else { | |
61 … | + opts.type = 'post' | |
62 … | + opts.branch = msg.key | |
63 … | + | |
64 … | + pull( | |
65 … | + sbot.query({query: [{$filter: {value: {content: {type: 'update', updated: msg.key}}}}]}), | |
66 … | + pull.drain(function (data) { | |
67 … | + console.log(data) | |
68 … | + var latest = h('div.message__body', tools.markdown(data.value.content.text)) | |
69 … | + message.replaceChild(latest, message.childNodes[2]) | |
70 … | + }) | |
71 … | + | |
72 … | + ) | |
73 … | + | |
74 … | + | |
75 … | + message.appendChild(h('button.btn', 'Reply', { | |
76 … | + onclick: function () { | |
77 … | + var compose = composer(opts) | |
78 … | + message.replaceChild(compose, message.lastElementChild) | |
79 … | + } | |
80 … | + })) | |
81 … | + } | |
41 | 82 … | return message |
42 | 83 … | } else if (msg.value.content.type == 'vote') { |
43 | 84 … | message.appendChild(tools.header(msg)) |
44 | 85 … | var embed = msg.value.content.vote.link |
@@ -60,10 +101,10 @@ | ||
60 | 101 … | } |
61 | 102 … | }) |
62 | 103 … | return message |
63 | 104 … | } else { |
64 | - //message.appendChild(tools.header(msg)) | |
65 | - //message.appendChild(h('pre', tools.rawJSON(msg.value.content))) | |
66 | - //return message | |
67 | - return | |
105 … | + message.appendChild(tools.header(msg)) | |
106 … | + message.appendChild(h('pre', tools.rawJSON(msg.value.content))) | |
107 … | + return message | |
108 … | + //return | |
68 | 109 … | } |
69 | 110 … | } |
tools.js | ||
---|---|---|
@@ -12,14 +12,12 @@ | ||
12 | 12 … | function votes (msg) { |
13 | 13 … | var votes = h('div.votes') |
14 | 14 … | if (msg.key) { |
15 | 15 … | pull( |
16 | - sbot.backlinks({query: [{$filter: {dest: msg.key, value: { content: { type: 'vote' }}}}], live: true}), | |
16 … | + sbot.links({dest: msg.key, rel: 'vote'}), | |
17 | 17 … | pull.drain(function (data) { |
18 | - console.log(data) | |
19 | - if (data.value) { | |
18 … | + if (data) { | |
20 | 19 … | votes.appendChild(h('a', {href:'#' + data.key}, h('img.emoji', {src: config.emojiUrl + 'star.png'}))) |
21 | - console.log(data) | |
22 | 20 … | } else {console.log(data)} |
23 | 21 … | }) |
24 | 22 … | ) |
25 | 23 … | } |
Built with git-ssb-web