ios: fix taps on reactions, member profile images, selecting items, icons to navigate to found and forwarded items (Xcode 16 regressions) (#5890)

This commit is contained in:
Evgeny 2025-05-12 12:59:03 +01:00 committed by GitHub
parent 2a43a02af3
commit bb2e7baaa8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1276,10 +1276,10 @@ struct ChatView: View {
if let selected = selectedChatItems, chatItem.canBeDeletedForSelf { if let selected = selectedChatItems, chatItem.canBeDeletedForSelf {
Color.clear Color.clear
.contentShape(Rectangle()) .contentShape(Rectangle())
.onTapGesture { .simultaneousGesture(TapGesture().onEnded {
let checked = selected.contains(chatItem.id) let checked = selected.contains(chatItem.id)
selectUnselectChatItem(select: !checked, chatItem) selectUnselectChatItem(select: !checked, chatItem)
} })
} }
} }
if let date = itemSeparation.date { if let date = itemSeparation.date {
@ -1468,7 +1468,7 @@ struct ChatView: View {
} }
HStack(alignment: .top, spacing: 10) { HStack(alignment: .top, spacing: 10) {
MemberProfileImage(member, size: memberImageSize, backgroundColor: theme.colors.background) MemberProfileImage(member, size: memberImageSize, backgroundColor: theme.colors.background)
.onTapGesture { .simultaneousGesture(TapGesture().onEnded {
if let mem = m.getGroupMember(member.groupMemberId) { if let mem = m.getGroupMember(member.groupMemberId) {
selectedMember = mem selectedMember = mem
} else { } else {
@ -1477,7 +1477,7 @@ struct ChatView: View {
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1 m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
selectedMember = mem selectedMember = mem
} }
} })
chatItemWithMenu(ci, range, maxWidth, itemSeparation) chatItemWithMenu(ci, range, maxWidth, itemSeparation)
.onPreferenceChange(DetermineWidth.Key.self) { msgWidth = $0 } .onPreferenceChange(DetermineWidth.Key.self) { msgWidth = $0 }
} }
@ -1621,9 +1621,9 @@ struct ChatView: View {
.padding(.horizontal, 6) .padding(.horizontal, 6)
.padding(.vertical, 4) .padding(.vertical, 4)
.if(chat.chatInfo.featureEnabled(.reactions) && (ci.allowAddReaction || r.userReacted)) { v in .if(chat.chatInfo.featureEnabled(.reactions) && (ci.allowAddReaction || r.userReacted)) { v in
v.onTapGesture { v.simultaneousGesture(TapGesture().onEnded {
setReaction(ci, add: !r.userReacted, reaction: r.reaction) setReaction(ci, add: !r.userReacted, reaction: r.reaction)
} })
} }
switch chat.chatInfo { switch chat.chatInfo {
case let .group(groupInfo): case let .group(groupInfo):
@ -2213,15 +2213,12 @@ struct ChatView: View {
} }
func goToItemInnerButton(_ alignStart: Bool, _ image: String, touchInProgress: Bool, _ onClick: @escaping () -> Void) -> some View { func goToItemInnerButton(_ alignStart: Bool, _ image: String, touchInProgress: Bool, _ onClick: @escaping () -> Void) -> some View {
Button {
onClick()
} label: {
Image(systemName: image) Image(systemName: image)
.resizable() .resizable()
.frame(width: 13, height: 13) .frame(width: 13, height: 13)
.padding([alignStart ? .trailing : .leading], 10) .padding([alignStart ? .trailing : .leading], 10)
.tint(theme.colors.secondary.opacity(touchInProgress ? 1.0 : 0.4)) .tint(theme.colors.secondary.opacity(touchInProgress ? 1.0 : 0.4))
} .simultaneousGesture(TapGesture().onEnded(onClick))
} }
@ViewBuilder @ViewBuilder