Fix FollowUserView not allowing profile tapping

This commit is contained in:
Scott Penrose
2023-06-14 11:35:03 -04:00
committed by William Casarin
parent a76ddea7da
commit 58a707685c
9 changed files with 28 additions and 0 deletions

View File

@@ -57,6 +57,7 @@ enum Route: Hashable {
RelayDetailView(state: damusState, relay: relay, nip11: metadata)
case .Following(let following):
FollowingView(damus_state: damusState, following: following)
.environmentObject(navigationCordinator)
case .MuteList(let users):
MutelistView(damus_state: damusState, users: users)
case .RelayConfig:
@@ -88,8 +89,10 @@ enum Route: Hashable {
ThreadView(state: damusState, thread: thread)
case .Reposts(let reposts):
RepostsView(damus_state: damusState, model: reposts)
.environmentObject(navigationCordinator)
case .Reactions(let reactions):
ReactionsView(damus_state: damusState, model: reactions)
.environmentObject(navigationCordinator)
case .Zaps(let target):
ZapsView(state: damusState, target: target)
case .Search(let search):

View File

@@ -10,12 +10,16 @@ import SwiftUI
struct FollowUserView: View {
let target: FollowTarget
let damus_state: DamusState
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
static let markdown = Markdown()
var body: some View {
HStack {
UserViewRow(damus_state: damus_state, pubkey: target.pubkey)
.onTapGesture {
navigationCoordinator.push(route: Route.ProfileByKey(pubkey: target.pubkey))
}
FollowButtonView(target: target, follows_you: false, follow_state: damus_state.contacts.follow_state(target.pubkey))
}
@@ -46,12 +50,14 @@ struct FollowersView: View {
let damus_state: DamusState
@EnvironmentObject var followers: FollowersModel
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
var body: some View {
ScrollView {
LazyVStack(alignment: .leading) {
ForEach(followers.contacts ?? [], id: \.self) { pk in
FollowUserView(target: .pubkey(pk), damus_state: damus_state)
.environmentObject(navigationCoordinator)
}
}
.padding(.horizontal)
@@ -70,12 +76,15 @@ struct FollowingView: View {
let damus_state: DamusState
let following: FollowingModel
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
var body: some View {
ScrollView {
LazyVStack(alignment: .leading) {
ForEach(following.contacts.reversed(), id: \.self) { pk in
FollowUserView(target: .pubkey(pk), damus_state: damus_state)
.environmentObject(navigationCoordinator)
}
}
.padding()

View File

@@ -10,6 +10,7 @@ import SwiftUI
struct ReactionView: View {
let damus_state: DamusState
let reaction: NostrEvent
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
var content: String {
return to_reaction_emoji(ev: reaction) ?? ""
@@ -22,6 +23,7 @@ struct ReactionView: View {
.frame(width: 50, height: 50)
FollowUserView(target: .pubkey(reaction.pubkey), damus_state: damus_state)
.environmentObject(navigationCoordinator)
}
}
}

View File

@@ -10,6 +10,7 @@ import SwiftUI
struct ReactionsView: View {
let damus_state: DamusState
@StateObject var model: ReactionsModel
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
@Environment(\.dismiss) var dismiss
@@ -18,6 +19,7 @@ struct ReactionsView: View {
LazyVStack {
ForEach(model.events, id: \.id) { ev in
ReactionView(damus_state: damus_state, reaction: ev)
.environmentObject(navigationCoordinator)
}
}
.padding()

View File

@@ -10,9 +10,11 @@ import SwiftUI
struct RepostView: View {
let damus_state: DamusState
let repost: NostrEvent
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
var body: some View {
FollowUserView(target: .pubkey(repost.pubkey), damus_state: damus_state)
.environmentObject(navigationCoordinator)
}
}

View File

@@ -10,12 +10,14 @@ import SwiftUI
struct RepostsView: View {
let damus_state: DamusState
@StateObject var model: RepostsModel
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
var body: some View {
ScrollView {
LazyVStack {
ForEach(model.events, id: \.id) { ev in
RepostView(damus_state: damus_state, repost: ev)
.environmentObject(navigationCoordinator)
}
}
.padding()

View File

@@ -24,6 +24,7 @@ struct SearchingEventView: View {
let state: DamusState
let evid: String
let search_type: SearchType
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
@State var search_state: SearchState = .searching
@@ -107,6 +108,7 @@ struct SearchingEventView: View {
case .found_profile(let pk):
NavigationLink(value: Route.ProfileByKey(pubkey: pk)) {
FollowUserView(target: .pubkey(pk), damus_state: state)
.environmentObject(navigationCoordinator)
}
.buttonStyle(PlainButtonStyle())
case .not_found:

View File

@@ -78,6 +78,7 @@ struct SearchHomeView: View {
var SearchContent: some View {
SearchResultsView(damus_state: damus_state, search: $search)
.environmentObject(navigationCoordinator)
.refreshable {
// Fetch new information by unsubscribing and resubscribing to the relay
model.unsubscribe()

View File

@@ -37,9 +37,11 @@ enum Search: Identifiable {
struct InnerSearchResults: View {
let damus_state: DamusState
let search: Search?
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
func ProfileSearchResult(pk: String) -> some View {
FollowUserView(target: .pubkey(pk), damus_state: damus_state)
.environmentObject(navigationCoordinator)
}
func HashtagSearch(_ ht: String) -> some View {
@@ -68,6 +70,7 @@ struct InnerSearchResults: View {
case .nip05(let addr):
SearchingEventView(state: damus_state, evid: addr, search_type: .nip05)
.environmentObject(navigationCoordinator)
case .profile(let prof):
let decoded = try? bech32_decode(prof)
@@ -106,10 +109,12 @@ struct SearchResultsView: View {
let damus_state: DamusState
@Binding var search: String
@State var result: Search? = nil
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
var body: some View {
ScrollView {
InnerSearchResults(damus_state: damus_state, search: result)
.environmentObject(navigationCoordinator)
.padding()
}
.frame(maxHeight: .infinity)