100 lines
2.8 KiB
Swift
100 lines
2.8 KiB
Swift
//
|
|
// FollowingView.swift
|
|
// damus
|
|
//
|
|
// Created by William Casarin on 2022-05-16.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct FollowUserView: View {
|
|
let target: FollowTarget
|
|
let damus_state: DamusState
|
|
|
|
var body: some View {
|
|
HStack {
|
|
UserViewRow(damus_state: damus_state, pubkey: target.pubkey)
|
|
.onTapGesture {
|
|
damus_state.nav.push(route: Route.ProfileByKey(pubkey: target.pubkey))
|
|
}
|
|
|
|
FollowButtonView(target: target, follows_you: false, follow_state: damus_state.contacts.follow_state(target.pubkey))
|
|
}
|
|
Spacer()
|
|
}
|
|
}
|
|
|
|
struct FollowersYouKnowView: View {
|
|
let damus_state: DamusState
|
|
let friended_followers: [Pubkey]
|
|
@ObservedObject var followers: FollowersModel
|
|
|
|
var body: some View {
|
|
ScrollView {
|
|
LazyVStack(alignment: .leading) {
|
|
ForEach(friended_followers, id: \.self) { pk in
|
|
FollowUserView(target: .pubkey(pk), damus_state: damus_state)
|
|
}
|
|
}
|
|
.padding(.horizontal)
|
|
}
|
|
.navigationBarTitle(NSLocalizedString("Followers You Know", comment: "Navigation bar title for view that shows who is following a user."))
|
|
}
|
|
}
|
|
|
|
struct FollowersView: View {
|
|
let damus_state: DamusState
|
|
@ObservedObject var followers: FollowersModel
|
|
|
|
var body: some View {
|
|
ScrollView {
|
|
LazyVStack(alignment: .leading) {
|
|
ForEach(followers.contacts ?? [], id: \.self) { pk in
|
|
FollowUserView(target: .pubkey(pk), damus_state: damus_state)
|
|
}
|
|
}
|
|
.padding(.horizontal)
|
|
}
|
|
.navigationBarTitle(NSLocalizedString("Followers", comment: "Navigation bar title for view that shows who is following a user."))
|
|
.onAppear {
|
|
followers.subscribe()
|
|
}
|
|
.onDisappear {
|
|
followers.unsubscribe()
|
|
}
|
|
}
|
|
}
|
|
|
|
struct FollowingView: View {
|
|
let damus_state: DamusState
|
|
|
|
let following: FollowingModel
|
|
|
|
|
|
var body: some View {
|
|
ScrollView {
|
|
LazyVStack(alignment: .leading) {
|
|
ForEach(following.contacts.reversed(), id: \.self) { pk in
|
|
FollowUserView(target: .pubkey(pk), damus_state: damus_state)
|
|
}
|
|
}
|
|
.padding()
|
|
}
|
|
.onAppear {
|
|
following.subscribe()
|
|
}
|
|
.onDisappear {
|
|
following.unsubscribe()
|
|
}
|
|
.navigationBarTitle(NSLocalizedString("Following", comment: "Navigation bar title for view that shows who a user is following."))
|
|
}
|
|
}
|
|
|
|
/*
|
|
struct FollowingView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
FollowingView(damus_state: test_damus_state, following: test_following_model)
|
|
}
|
|
}
|
|
*/
|