mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-03-30 14:15:55 +00:00
ios: open support chat with any member (#5910)
This commit is contained in:
@@ -98,7 +98,8 @@ struct GroupChatInfoView: View {
|
||||
if groupInfo.canModerate {
|
||||
GroupReportsChatNavLink(chat: chat)
|
||||
}
|
||||
if groupInfo.membership.supportChat != nil {
|
||||
if groupInfo.membership.memberActive
|
||||
&& (groupInfo.membership.memberRole < .moderator || groupInfo.membership.supportChat != nil) {
|
||||
UserSupportChatNavLink(chat: chat, groupInfo: groupInfo)
|
||||
}
|
||||
} header: {
|
||||
@@ -540,7 +541,7 @@ struct GroupChatInfoView: View {
|
||||
SecondaryChatView(chat: Chat(chatInfo: .group(groupInfo: groupInfo, groupChatScope: scopeInfo), chatItems: [], chatStats: ChatStats()))
|
||||
} label: {
|
||||
HStack {
|
||||
Label("Chat with admins", systemImage: chat.supportUnreadCount > 0 ? "flag.fill" : "flag")
|
||||
Label("Chat with admins", systemImage: chat.supportUnreadCount > 0 ? "flag.fill" : "flag")
|
||||
Spacer()
|
||||
if chat.supportUnreadCount > 0 {
|
||||
UnreadBadge(count: chat.supportUnreadCount, color: theme.colors.primary)
|
||||
|
||||
@@ -103,6 +103,10 @@ struct GroupMemberInfoView: View {
|
||||
|
||||
if member.memberActive {
|
||||
Section {
|
||||
if groupInfo.membership.memberRole >= .moderator
|
||||
&& (member.memberRole < .moderator || member.supportChat != nil) {
|
||||
MemberInfoSupportChatNavLink(groupInfo: groupInfo, member: groupMember)
|
||||
}
|
||||
if let code = connectionCode { verifyCodeButton(code) }
|
||||
if let connStats = connectionStats,
|
||||
connStats.ratchetSyncAllowed {
|
||||
@@ -474,6 +478,27 @@ struct GroupMemberInfoView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
}
|
||||
|
||||
struct MemberInfoSupportChatNavLink: View {
|
||||
@EnvironmentObject var theme: AppTheme
|
||||
var groupInfo: GroupInfo
|
||||
var member: GMember
|
||||
@State private var navLinkActive = false
|
||||
|
||||
var body: some View {
|
||||
let scopeInfo: GroupChatScopeInfo = .memberSupport(groupMember_: member.wrapped)
|
||||
NavigationLink(isActive: $navLinkActive) {
|
||||
SecondaryChatView(chat: Chat(chatInfo: .group(groupInfo: groupInfo, groupChatScope: scopeInfo), chatItems: [], chatStats: ChatStats()))
|
||||
} label: {
|
||||
Label("Chat with member", systemImage: "flag")
|
||||
}
|
||||
.onChange(of: navLinkActive) { active in
|
||||
if active {
|
||||
ItemsModel.loadSecondaryChat(groupInfo.id, chatFilter: .groupChatScopeContext(groupScopeInfo: scopeInfo))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func verifyCodeButton(_ code: String) -> some View {
|
||||
let member = groupMember.wrapped
|
||||
return NavigationLink {
|
||||
|
||||
@@ -441,7 +441,6 @@ fun GroupMemberInfoLayout(
|
||||
SectionView {
|
||||
if (
|
||||
groupInfo.membership.memberRole >= GroupMemberRole.Moderator &&
|
||||
member.memberActive &&
|
||||
(member.memberRole < GroupMemberRole.Moderator || member.supportChat != null)
|
||||
) {
|
||||
SupportChatButton()
|
||||
|
||||
Reference in New Issue
Block a user