Browse Source

robohash avatars

Signed-off-by: William Casarin <jb55@jb55.com>
profiles-everywhere
William Casarin 3 years ago
parent
commit
cc95931dec
  1. 13
      damus/Views/EventActionBar.swift
  2. 24
      damus/Views/FollowingView.swift
  3. 4
      damus/Views/ProfilePicView.swift
  4. 4
      damus/Views/ProfileView.swift

13
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)
}
}

24
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")
}
}

4
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

4
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 {

Loading…
Cancel
Save