From 8a785559c68673f4b122da83806c15661ed703cc Mon Sep 17 00:00:00 2001 From: OlegAba Date: Sat, 8 Apr 2023 20:12:26 -0400 Subject: [PATCH] Fix tap area when mentioning users Changelog-Fixed: Fix tap area when mentioning users Closes: #895 --- damus/Components/UserView.swift | 24 +++++++++++++++++++++++- damus/Views/FollowingView.swift | 7 ++----- damus/Views/Muting/MutelistView.swift | 2 +- damus/Views/Relays/RelayDetailView.swift | 2 +- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/damus/Components/UserView.swift b/damus/Components/UserView.swift index d7abd656..66a23904 100644 --- a/damus/Components/UserView.swift +++ b/damus/Components/UserView.swift @@ -7,11 +7,34 @@ import SwiftUI +struct UserViewRow: View { + let damus_state: DamusState + let pubkey: String + + @State var navigating: Bool = false + + var body: some View { + let dest = ProfileView(damus_state: damus_state, pubkey: pubkey) + + UserView(damus_state: damus_state, pubkey: pubkey) + .contentShape(Rectangle()) + .background( + NavigationLink(destination: dest, isActive: $navigating) { + EmptyView() + } + ) + .onTapGesture { + navigating = true + } + } +} + struct UserView: View { let damus_state: DamusState let pubkey: String var body: some View { + VStack { HStack { ProfilePicView(pubkey: pubkey, size: PFP_SIZE, highlight: .none, profiles: damus_state.profiles) @@ -28,7 +51,6 @@ struct UserView: View { Spacer() } - Spacer() } } } diff --git a/damus/Views/FollowingView.swift b/damus/Views/FollowingView.swift index 53b6f945..8a39c827 100644 --- a/damus/Views/FollowingView.swift +++ b/damus/Views/FollowingView.swift @@ -21,14 +21,11 @@ struct FollowUserView: View { } HStack { - UserView(damus_state: damus_state, pubkey: target.pubkey) - .contentShape(Rectangle()) - .onTapGesture { - navigating = true - } + UserViewRow(damus_state: damus_state, pubkey: target.pubkey) FollowButtonView(target: target, follows_you: false, follow_state: damus_state.contacts.follow_state(target.pubkey)) } + Spacer() } } diff --git a/damus/Views/Muting/MutelistView.swift b/damus/Views/Muting/MutelistView.swift index 3cbc4b63..b28c36f8 100644 --- a/damus/Views/Muting/MutelistView.swift +++ b/damus/Views/Muting/MutelistView.swift @@ -37,7 +37,7 @@ struct MutelistView: View { var body: some View { List(users, id: \.self) { pubkey in - UserView(damus_state: damus_state, pubkey: pubkey) + UserViewRow(damus_state: damus_state, pubkey: pubkey) .id(pubkey) .swipeActions { RemoveAction(pubkey: pubkey) diff --git a/damus/Views/Relays/RelayDetailView.swift b/damus/Views/Relays/RelayDetailView.swift index 644c8ad1..5fe7acb3 100644 --- a/damus/Views/Relays/RelayDetailView.swift +++ b/damus/Views/Relays/RelayDetailView.swift @@ -70,7 +70,7 @@ struct RelayDetailView: View { if let pubkey = nip11.pubkey { Section(NSLocalizedString("Admin", comment: "Label to display relay contact user.")) { - UserView(damus_state: state, pubkey: pubkey) + UserViewRow(damus_state: state, pubkey: pubkey) } } Section(NSLocalizedString("Relay", comment: "Label to display relay address.")) {