sbot/ui/lib/pages/message.js

55 lines
1.6 KiB
JavaScript

'use strict'
var h = require('hyperscript')
var mlib = require('ssb-msgs')
var app = require('../app')
var ui = require('../ui')
var anim = require('../ui/anim')
var com = require('../com')
var util = require('../util')
module.exports = function () {
app.ssb.get(app.page.param, function (err, msg) {
var content
var isEncrypted = false
var secretMessageLabel
if (msg) {
msg = { key: app.page.param, value: msg }
content = com.message(msg, { markread: true, fullview: true, live: true })
// if encrypted, add the animated 'secret message' label
if (typeof msg.value.content == 'string') {
isEncrypted = true
secretMessageLabel = h('span')
anim.textDecoding(secretMessageLabel, 'Secret Thread')
}
} else {
content = 'Message not found.'
}
ui.setPage('message', h('.layout-twocol',
h('.layout-main', content),
h('.layout-rightnav',
(isEncrypted) ?
h('.text-center',
h('p', h('code', { style: 'font-size: 18px' }, secretMessageLabel, ' ', com.icon('lock'))),
h('p', 'All messages in this thread are encrypted.')
) :
''
)
))
if (app.page.qs.jumpto) {
setTimeout(function (){
var el = document.querySelector('.message[data-key="'+app.page.qs.jumpto+'"]')
if (el) {
el.scrollIntoView()
if ((window.innerHeight + window.scrollY) < document.body.offsetHeight)
window.scrollBy(0, -100) // show a little above, if not at the bottom of the page
}
}, 50)
}
})
}