From 74ca52116504c6844d590ac07ef17ee788501924 Mon Sep 17 00:00:00 2001 From: cel Date: Wed, 12 Apr 2017 17:35:59 -0700 Subject: Show follows, followers, and friends (WIP) --- lib/serve.js | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) (limited to 'lib/serve.js') diff --git a/lib/serve.js b/lib/serve.js index 2f96d57..b394f39 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -799,10 +799,40 @@ Serve.prototype.wrapPage = function (title, searchQ) { ) } +Serve.prototype.renderFriend = function (id, cb) { + var el = this.app.render.idLink(id, function (err) { + cb(err, el) + }) +} + +Serve.prototype.friendList = function (friends, cb) { + var self = this + var list = h('div') + var first = true + pull( + pull.values(friends), + paramap(function (id, cb) { + self.renderFriend(id, function (err, el) { + if (err) el = u.renderError(err, ext) + cb(null, el) + }) + }, 8), + pull.drain(function (el) { + if (first) first = false + else list.appendChild(h('span', ', ')) + list.appendChild(el) + }, cb) + ) + return list +} + Serve.prototype.wrapUserFeed = function (id) { var self = this return u.hyperwrap(function (thread, cb) { - self.app.getAbout(id, function (err, about) { + var done = multicb({pluck: 1, spread: true}) + self.app.getAbout(id, done()) + self.app.getFriendInfo(id, done()) + done(function (err, about, info) { if (err) return cb(err) var done = multicb({pluck: 1, spread: true}) done()(null, [ @@ -815,8 +845,20 @@ Serve.prototype.wrapUserFeed = function (id) { h('code', h('small', id)), about.description ? h('div', {innerHTML: self.app.render.markdown(about.description)}) : '' - ))) - ), + )), + h('tr', + h('td', 'Friends:'), + h('td', self.friendList(info.friends, done())) + ), + h('tr', + h('td', 'Follows:'), + h('td', self.friendList(info.follows, done())) + ), + h('tr', + h('td', 'Followers:'), + h('td', self.friendList(info.followers, done())) + ) + )), thread ]) done(cb) -- cgit v1.2.3