commit cc95931dec68d0a18356a284f57bca069ac791d3
parent 200cbe3728a47df7bcd7fefc177c03223c6afdbb
Author: William Casarin <jb55@jb55.com>
Date:   Sat, 28 May 2022 08:31:53 -0700
robohash avatars
Signed-off-by: William Casarin <jb55@jb55.com>
Diffstat:
4 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/damus/Views/EventActionBar.swift b/damus/Views/EventActionBar.swift
@@ -100,8 +100,19 @@ func EventActionButton(img: String, col: Color?, action: @escaping () -> ()) -> 
     Button(action: action) {
         Label("", systemImage: img)
             .font(.footnote)
-            .frame(maxWidth: .infinity)
             .foregroundColor(col == nil ? Color.gray : col!)
     }
+    .padding(.trailing, 40)
 }
 
+
+struct EventActionBar_Previews: PreviewProvider {
+    static var previews: some View {
+        let pk = "pubkey"
+        let kp = Keypair(pubkey: pk, privkey: nil)
+        let ds = test_damus_state()
+        let bar = ActionBarModel(likes: 0, boosts: 0, tips: 0, our_like: nil, our_boost: nil, our_tip: nil)
+        let ev = NostrEvent(content: "hi", pubkey: pk)
+        EventActionBar(event: ev, keypair: kp, profiles: ds.profiles, bar: bar)
+    }
+}
diff --git a/damus/Views/FollowingView.swift b/damus/Views/FollowingView.swift
@@ -19,17 +19,18 @@ struct FollowUserView: View {
             
             NavigationLink(destination: pv) {
                 ProfilePicView(pubkey: target.pubkey, size: PFP_SIZE, highlight: .none, image_cache: damus_state.image_cache, profiles: damus_state.profiles)
-            }
             
-            VStack(alignment: .leading) {
-                let profile = damus_state.profiles.lookup(id: target.pubkey)
-                ProfileName(pubkey: target.pubkey, profile: profile)
-                if let about = profile.flatMap { $0.about } {
-                    Text(about)
+                VStack(alignment: .leading) {
+                    let profile = damus_state.profiles.lookup(id: target.pubkey)
+                    ProfileName(pubkey: target.pubkey, profile: profile)
+                    if let about = profile.flatMap { $0.about } {
+                        Text(about)
+                    }
                 }
+                
+                Spacer()
             }
-            
-            Spacer()
+            .buttonStyle(PlainButtonStyle())
             
             FollowButtonView(target: target, follow_state: damus_state.contacts.follow_state(target.pubkey))
         }
@@ -38,10 +39,12 @@ struct FollowUserView: View {
 
 struct FollowersView: View {
     let damus_state: DamusState
+    let whos: String
     
     @EnvironmentObject var followers: FollowersModel
     
     var body: some View {
+        let profile = damus_state.profiles.lookup(id: whos)
         ScrollView {
             LazyVStack(alignment: .leading) {
                 ForEach(followers.contacts, id: \.self) { pk in
@@ -49,6 +52,7 @@ struct FollowersView: View {
                 }
             }
         }
+        .navigationBarTitle("\(Profile.displayName(profile: profile, pubkey: whos))'s Followers")
     }
     
 }
@@ -57,8 +61,11 @@ struct FollowingView: View {
     let damus_state: DamusState
     
     let following: FollowingModel
+    let whos: String
     
     var body: some View {
+        let profile = damus_state.profiles.lookup(id: whos)
+        let who = Profile.displayName(profile: profile, pubkey: whos)
         ScrollView {
             LazyVStack(alignment: .leading) {
                 ForEach(following.contacts, id: \.self) { pk in
@@ -72,6 +79,7 @@ struct FollowingView: View {
         .onDisappear {
             following.unsubscribe()
         }
+        .navigationBarTitle("\(who) following")
     }
 }
 
diff --git a/damus/Views/ProfilePicView.swift b/damus/Views/ProfilePicView.swift
@@ -75,8 +75,8 @@ struct ProfilePicView: View {
     
     var MainContent: some View {
         Group {
-            let picture = picture ?? profiles.lookup(id: pubkey)?.picture
-            if let pic_url = picture.flatMap { URL(string: $0) } {
+            let picture = picture ?? profiles.lookup(id: pubkey)?.picture ?? "https://robohash.org/\(pubkey).png"
+            if let pic_url = URL(string: picture) {
                 ProfilePic(pic_url)
             } else {
                 Placeholder
diff --git a/damus/Views/ProfileView.swift b/damus/Views/ProfileView.swift
@@ -90,7 +90,7 @@ struct ProfileView: View {
                 let contacts = contact.referenced_pubkeys.map { $0.ref_id }
                 let following_model = FollowingModel(damus_state: damus_state, contacts: contacts)
                 HStack {
-                    NavigationLink(destination: FollowingView(damus_state: damus_state, following: following_model)) {
+                    NavigationLink(destination: FollowingView(damus_state: damus_state, following: following_model, whos: profile.pubkey)) {
                         HStack {
                             Text("\(profile.following)")
                             Text("Following")
@@ -99,7 +99,7 @@ struct ProfileView: View {
                     }
                     .buttonStyle(PlainButtonStyle())
                     
-                    let fview = FollowersView(damus_state: damus_state)
+                    let fview = FollowersView(damus_state: damus_state, whos: profile.pubkey)
                         .environmentObject(followers)
                     NavigationLink(destination: fview) {
                         HStack {