41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
'use strict'
|
|
var h = require('hyperscript')
|
|
var pull = require('pull-stream')
|
|
var app = require('../app')
|
|
var modals = require('../ui/modals')
|
|
var ui = require('../ui')
|
|
|
|
module.exports = function (id) {
|
|
var success = false, errored = false
|
|
var btn = h('a.btn.btn-primary', { onclick: onclick }, 'Download User')
|
|
|
|
function onclick () {
|
|
btn.classList.add('disabled')
|
|
btn.innerText = 'Searching...'
|
|
pull(app.ssb.patchwork.useLookupCode(id), pull.drain(onLookupEvent, onLookupDone))
|
|
}
|
|
|
|
function onLookupEvent (e) {
|
|
if (e.type == 'error' && e.message == 'Invalid lookup code')
|
|
errored = true, modals.error('Error Downloading User', 'This is not a valid user ID: '+id, 'This error occurred while trying to download a user that wasn\'t locally available.')
|
|
else if (e.type == 'connecting')
|
|
btn.innerText = 'Asking '+e.addr.host
|
|
else if (e.type == 'finished') {
|
|
btn.innerText = 'Success!'
|
|
success = true
|
|
}
|
|
}
|
|
|
|
function onLookupDone () {
|
|
btn.classList.remove('disabled')
|
|
if (success)
|
|
ui.refreshPage()
|
|
else {
|
|
if (!errored)
|
|
modals.error('User Not Found', 'None of the available mesh nodes had this user\'s data. Make sure you\'re online, and that you have the right ID, then try again.', 'Attempted ID: '+id)
|
|
btn.innerText = 'Try Download Again'
|
|
}
|
|
}
|
|
|
|
return btn
|
|
} |