git ssb

16+

Dominic / patchbay



Tree: 1d93c63544059ee8195e84d178b24ed4b2c39a2f

Files: 1d93c63544059ee8195e84d178b24ed4b2c39a2f / modules_basic / avatar-profile.js

1756 bytesRaw
1var h = require('hyperscript')
2var plugs = require('../plugs')
3var pull = require('pull-stream')
4
5var avatar_image_link = plugs.first(exports.avatar_image_link = [])
6var avatar_action = plugs.map(exports.avatar_action = [])
7var avatar_edit = plugs.first(exports.avatar_edit = [])
8
9var follows = plugs.first(exports.follows = [])
10var followers = plugs.first(exports.followers = [])
11
12function streamToList(stream, el) {
13 pull(
14 stream,
15 pull.drain(function (item) {
16 if(item) el.appendChild(item)
17 })
18 )
19 return el
20}
21
22function image_link (id) {
23 return avatar_image_link(id, 'thumbnail')
24}
25
26exports.avatar_profile = function (id) {
27
28 var follows_el = h('div.profile__follows.wrap')
29 var friends_el = h('div.profile__friendss.wrap')
30 var followers_el = h('div.profile__followers.wrap')
31 var a, b
32
33 pull(follows(id), pull.unique(), pull.collect(function (err, ary) {
34 a = ary || []; next()
35 }))
36 pull(followers(id), pull.unique(), pull.collect(function (err, ary) {
37 b = ary || {}; next()
38 }))
39
40 function next () {
41 if(!(a && b)) return
42 var _c = [], _a = [], _b = []
43
44 a.forEach(function (id) {
45 if(!~b.indexOf(id)) _a.push(id)
46 else _c.push(id)
47 })
48 b.forEach(function (id) {
49 if(!~_c.indexOf(id)) _b.push(id)
50 })
51 function add (ary, el) {
52 ary.forEach(function (id) { el.appendChild(image_link(id)) })
53 }
54
55 add(_a, follows_el)
56 add(_c, friends_el)
57 add(_b, followers_el)
58 }
59
60
61 return h('div.column.profile',
62 avatar_edit(id),
63 avatar_action(id),
64 h('div.profile__relationships.column',
65 h('strong', 'follows'),
66 follows_el,
67 h('strong', 'friends'),
68 friends_el,
69 h('strong', 'followers'),
70 followers_el
71 )
72 )
73}
74
75

Built with git-ssb-web