modules_basic/private.jsView |
---|
1 | 1 … | 'use strict' |
2 | | -var h = require('hyperscript') |
3 | | -var u = require('../util') |
4 | | -var pull = require('pull-stream') |
5 | | -var Scroller = require('pull-scroll') |
6 | | -var ref = require('ssb-ref') |
| 2 … | +const fs = require('fs') |
| 3 … | +const h = require('../h') |
| 4 … | +const u = require('../util') |
| 5 … | +const pull = require('pull-stream') |
| 6 … | +const Scroller = require('pull-scroll') |
| 7 … | +const ref = require('ssb-ref') |
7 | 8 … | |
8 | 9 … | function map(ary, iter) { |
9 | 10 … | if(Array.isArray(ary)) return ary.map(iter) |
10 | 11 … | } |
23 | 24 … | exports.gives = { |
24 | 25 … | builtin_tabs: true, |
25 | 26 … | screen_view: true, |
26 | 27 … | message_meta: true, |
27 | | - message_content_mini: true |
| 28 … | + message_content_mini: true, |
| 29 … | + |
28 | 30 … | } |
29 | 31 … | |
30 | 32 … | exports.create = function (api) { |
31 | 33 … | |
41 | 43 … | ) |
42 | 44 … | } |
43 | 45 … | |
44 | 46 … | return { |
45 | | - builtin_tabs: function () { |
46 | | - return ['/private'] |
47 | | - }, |
| 47 … | + builtin_tabs, |
| 48 … | + screen_view, |
| 49 … | + message_meta, |
| 50 … | + message_content_mini, |
| 51 … | + |
| 52 … | + } |
48 | 53 … | |
49 | | - screen_view: function (path) { |
50 | | - if(path !== '/private') return |
| 54 … | + function builtin_tabs () { |
| 55 … | + return ['/private'] |
| 56 … | + } |
51 | 57 … | |
52 | | - var composer = api.message_compose( |
53 | | - {type: 'post', recps: [], private: true}, |
54 | | - { |
55 | | - prepublish: function (msg) { |
56 | | - msg.recps = [id].concat(msg.mentions).filter(function (e) { |
57 | | - return ref.isFeed('string' === typeof e ? e : e.link) |
58 | | - }) |
59 | | - if(!msg.recps.length) |
60 | | - throw new Error('cannot make private message without recipients - just mention the user in an at reply in the message you send') |
61 | | - return msg |
62 | | - }, |
63 | | - placeholder: 'Write a private message' |
64 | | - } |
65 | | - ) |
66 | | - var { container, content } = api.build_scroller({ prepend: composer }) |
| 58 … | + function screen_view (path) { |
| 59 … | + if(path !== '/private') return |
67 | 60 … | |
68 | | - |
69 | | - |
70 | | - |
71 | | - var id = require('../keys').id |
72 | | - api.sbot_whoami(function (err, feed) { |
73 | | - if (err) return console.error(err) |
74 | | - if(id !== feed.id) |
75 | | - return container.appendChild(h('h4', |
76 | | - 'Private messages are not supported in the lite client.')) |
| 61 … | + var composer = api.message_compose( |
| 62 … | + {type: 'post', recps: [], private: true}, |
| 63 … | + { |
| 64 … | + prepublish: function (msg) { |
| 65 … | + msg.recps = [id].concat(msg.mentions).filter(function (e) { |
| 66 … | + return ref.isFeed('string' === typeof e ? e : e.link) |
| 67 … | + }) |
| 68 … | + if(!msg.recps.length) |
| 69 … | + throw new Error('cannot make private message without recipients - just mention the user in an at reply in the message you send') |
| 70 … | + return msg |
| 71 … | + }, |
| 72 … | + placeholder: 'Write a private message' |
| 73 … | + } |
| 74 … | + ) |
| 75 … | + var { container, content } = api.build_scroller({ prepend: composer }) |
77 | 76 … | |
78 | | - pull( |
79 | | - u.next(api.sbot_log, {old: false, limit: 100}), |
80 | | - unbox(), |
81 | | - Scroller(container, content, api.message_render, true, false) |
82 | | - ) |
| 77 … | + |
| 78 … | + |
| 79 … | + |
| 80 … | + var id = require('../keys').id |
| 81 … | + api.sbot_whoami(function (err, feed) { |
| 82 … | + if (err) return console.error(err) |
| 83 … | + if(id !== feed.id) |
| 84 … | + return container.appendChild(h('h4', |
| 85 … | + 'Private messages are not supported in the lite client.')) |
83 | 86 … | |
84 | | - pull( |
85 | | - u.next(api.sbot_log, {reverse: true, limit: 1000}), |
86 | | - unbox(), |
87 | | - Scroller(container, content, api.message_render, false, false, function (err) { |
88 | | - if(err) throw err |
89 | | - }) |
90 | | - ) |
91 | | - }) |
| 87 … | + pull( |
| 88 … | + u.next(api.sbot_log, {old: false, limit: 100}), |
| 89 … | + unbox(), |
| 90 … | + Scroller(container, content, api.message_render, true, false) |
| 91 … | + ) |
92 | 92 … | |
93 | | - return container |
94 | | - }, |
| 93 … | + pull( |
| 94 … | + u.next(api.sbot_log, {reverse: true, limit: 1000}), |
| 95 … | + unbox(), |
| 96 … | + Scroller(container, content, api.message_render, false, false, function (err) { |
| 97 … | + if(err) throw err |
| 98 … | + }) |
| 99 … | + ) |
| 100 … | + }) |
95 | 101 … | |
96 | | - message_meta: function (msg) { |
97 | | - if(msg.value.content.recps || msg.value.private) |
98 | | - return h('span.row', 'PRIVATE', map(msg.value.content.recps, function (id) { |
99 | | - return api.avatar_image_link('string' == typeof id ? id : id.link, 'thumbnail') |
100 | | - })) |
101 | | - }, |
| 102 … | + return container |
| 103 … | + } |
102 | 104 … | |
103 | | - message_content_mini: function (msg, sbot) { |
104 | | - if (typeof msg.value.content === 'string') { |
105 | | - var icon = api.emoji_url('lock') |
106 | | - return icon |
107 | | - ? h('img', {className: 'emoji', src: icon}) |
108 | | - : 'PRIVATE' |
| 105 … | + function message_meta (msg) { |
| 106 … | + if(!msg.value.content.recps && ! msg.value.private) return |
| 107 … | + |
| 108 … | + return h('div', { |
| 109 … | + style: { |
| 110 … | + display: 'flex', |
| 111 … | + 'align-items': 'center', |
| 112 … | + color: 'gray' |
109 | 113 … | } |
| 114 … | + }, [ |
| 115 … | + h('div', 'private: ['), |
| 116 … | + map(msg.value.content.recps, id => ( |
| 117 … | + api.avatar_image_link('string' == typeof id ? id : id.link) |
| 118 … | + )), |
| 119 … | + h('div', ']'), |
| 120 … | + ]) |
| 121 … | + } |
| 122 … | + |
| 123 … | + function message_content_mini (msg, sbot) { |
| 124 … | + if (typeof msg.value.content === 'string') { |
| 125 … | + var icon = api.emoji_url('lock') |
| 126 … | + return icon |
| 127 … | + ? h('img', {className: 'emoji', src: icon}) |
| 128 … | + : 'PRIVATE' |
110 | 129 … | } |
111 | 130 … | } |
112 | | - |
113 | 131 … | } |
114 | 132 … | |