git ssb

16+

Dominic / patchbay



Commit d9e40e563621b8ed8d5c36ddadfc5c42d2a01e7e

Merge branch 'avatar_edit'

Dominic Tarr committed on 7/25/2016, 12:46:07 AM
Parent: 25c84eb21bc4e067eac8085385882db73bf9bde8
Parent: d6a90dfc953abdf9ee85b3f196aa569ec8bda3ac

Files changed

modules/avatar-profile.jschanged
modules/index.jschanged
modules/relationships.jsadded
style.csschanged
modules/avatar-profile.jsView
@@ -1,19 +1,59 @@
11 var h = require('hyperscript')
22 var plugs = require('../plugs')
3+var pull = require('pull-stream')
34
4-
55 var avatar_image = plugs.first(exports.avatar_image = [])
66 var avatar_name = plugs.first(exports.avatar_name = [])
77 var avatar_action = plugs.map(exports.avatar_action = [])
88 var avatar_edit = plugs.first(exports.avatar_edit = [])
99
10+var follows = plugs.first(exports.follows = [])
11+var followers = plugs.first(exports.followers = [])
12+
13+function streamToList(stream, el) {
14+ pull(
15+ stream,
16+// pull.unique(function (e) { return e }),
17+ pull.drain(function (item) {
18+ if(item) el.appendChild(item)
19+ })
20+ )
21+ return el
22+}
23+
24+function image_link (id) {
25+ return h('a', {href:'#'+id}, avatar_image(id))
26+}
27+
1028 exports.avatar_profile = function (id) {
11- return avatar_edit(id)
29+ return h('div.column.profile',
30+ avatar_edit(id),
31+ avatar_action(id),
1232
13- return h('div.row.profile',
14- avatar_image(id),
15- h('div.profile__info',
16- h('strong', avatar_name(id)),
17- avatar_action(id))
33+ h('div.profile__relationships.column',
34+
35+ h('strong', 'follows'),
36+ streamToList(pull(
37+ follows(id),
38+ pull.unique(),
39+ pull.map(image_link)
40+ ), h('div.profile__follows.wrap')),
41+
42+ h('strong', 'followers'),
43+ streamToList(pull(
44+ followers(id),
45+ pull.unique(),
46+ pull.map(image_link)
47+ ), h('div.profile__followers.wrap'))
48+ )
1849 )
1950 }
51+
52+
53+
54+
55+
56+
57+
58+
59+
modules/index.jsView
@@ -11,8 +11,9 @@
1111 "crypto.js": require('./crypto.js'),
1212 "feed.js": require('./feed.js'),
1313 "file-input.js": require('./file-input.js'),
1414 "follow.js": require('./follow.js'),
15+ "relationships.js": require('./relationships.js'),
1516 "invite.js": require('./invite.js'),
1617 "like.js": require('./like.js'),
1718 "markdown.js": require('./markdown.js'),
1819 "message-confirm.js": require('./message-confirm.js'),
modules/relationships.jsView
@@ -1,0 +1,23 @@
1+
2+var plugs = require('../plugs')
3+
4+var sbot_links2 = plugs.first(exports.sbot_links2 = [])
5+
6+//this is a bit crude, and doesn't actually show unfollows yet.
7+
8+exports.follows = function (id, cb) {
9+ return sbot_links2({query: [
10+ {"$filter": {"source": id, "rel": ["contact", true, false] }},
11+ {"$map": "dest"}
12+ ]})
13+}
14+
15+exports.followers = function (id) {
16+ return sbot_links2({query: [
17+ {"$filter": {"dest": id, "rel": ["contact", true, false] }},
18+ {"$map": "source"}
19+ ]})
20+}
21+
22+
23+
style.cssView
@@ -22,8 +22,14 @@
2222 display: flex;
2323 flex-direction: row;
2424 }
2525
26+.wrap {
27+ display: flex;
28+ flex-direction: row;
29+ flex-wrap: wrap;
30+}
31+
2632 .stretch {
2733 flex-basis: 0;
2834 }
2935
@@ -273,4 +279,13 @@
273279
274280 .hypercrop__canvas {
275281 width: 100%;
276282 }
283+
284+.profile__follows img, .profile__followers img {
285+ width: 40px;
286+ height: 40px;
287+ margin-right: 3px;
288+ border: 1px solid #ccc;
289+}
290+
291+

Built with git-ssb-web