mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-05-26 09:44:55 +00:00
out of menu to contextMenu
This commit is contained in:
@@ -1535,7 +1535,31 @@ struct ChatView: View {
|
||||
.environment(\.revealed, revealed)
|
||||
.environment(\.showTimestamp, itemSeparation.timestamp)
|
||||
.modifier(ChatItemClipped(ci, tailVisible: itemSeparation.largeGap && (ci.meta.itemDeleted == nil || revealed)))
|
||||
.contextMenu { menu(ci, range, live: composeState.liveMessage != nil) }
|
||||
.contextMenu {
|
||||
if case let .group(gInfo) = chat.chatInfo, ci.isReport, ci.meta.itemDeleted == nil {
|
||||
menuReport(ci, gInfo)
|
||||
} else if let mc = ci.content.msgContent, !ci.isReport, ci.meta.itemDeleted == nil || revealed {
|
||||
menuContent1(ci, mc, composeState.liveMessage != nil)
|
||||
menuContent2(ci, composeState.liveMessage != nil)
|
||||
menuContentModerate(ci, composeState.liveMessage != nil)
|
||||
} else if ci.meta.itemDeleted != nil {
|
||||
menuDeleted(ci, range)
|
||||
} else if ci.isDeletedContent {
|
||||
viewInfoButton(ci)
|
||||
deleteButton(ci)
|
||||
} else if ci.mergeCategory != nil && ((range?.count ?? 0) > 1 || revealed) {
|
||||
if revealed { shrinkButton() } else { expandButton() }
|
||||
deleteButton(ci)
|
||||
} else if ci.showLocalDelete {
|
||||
deleteButton(ci)
|
||||
} else {
|
||||
EmptyView()
|
||||
}
|
||||
if selectedChatItems == nil && ci.canBeDeletedForSelf {
|
||||
Divider()
|
||||
selectButton(ci)
|
||||
}
|
||||
}
|
||||
.accessibilityLabel("")
|
||||
if !ci.chatDir.sent {
|
||||
goToItemButton(false)
|
||||
@@ -1638,33 +1662,6 @@ struct ChatView: View {
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
private func menu(_ ci: ChatItem, _ range: ClosedRange<Int>?, live: Bool) -> some View {
|
||||
if case let .group(gInfo) = chat.chatInfo, ci.isReport, ci.meta.itemDeleted == nil {
|
||||
menuReport(ci, gInfo)
|
||||
} else if let mc = ci.content.msgContent, !ci.isReport, ci.meta.itemDeleted == nil || revealed {
|
||||
menuContent1(ci, mc, live)
|
||||
menuContent2(ci, live)
|
||||
menuContentModerate(ci, live)
|
||||
} else if ci.meta.itemDeleted != nil {
|
||||
menuDeleted(ci, range)
|
||||
} else if ci.isDeletedContent {
|
||||
viewInfoButton(ci)
|
||||
deleteButton(ci)
|
||||
} else if ci.mergeCategory != nil && ((range?.count ?? 0) > 1 || revealed) {
|
||||
if revealed { shrinkButton() } else { expandButton() }
|
||||
deleteButton(ci)
|
||||
} else if ci.showLocalDelete {
|
||||
deleteButton(ci)
|
||||
} else {
|
||||
EmptyView()
|
||||
}
|
||||
if selectedChatItems == nil && ci.canBeDeletedForSelf {
|
||||
Divider()
|
||||
selectButton(ci)
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder func menuReport(_ ci: ChatItem, _ gInfo: GroupInfo) -> some View {
|
||||
if ci.chatDir != .groupSnd, gInfo.membership.memberRole >= .moderator {
|
||||
archiveReportButton(ci)
|
||||
|
||||
Reference in New Issue
Block a user