mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-03-14 09:45:42 +00:00
ios: fix merging of different moderate sections
This commit is contained in:
parent
9cefcb3fe8
commit
9f95c0ca06
2 changed files with 14 additions and 6 deletions
|
@ -410,14 +410,19 @@ struct ChatView: View {
|
|||
private func filtered(_ reversedChatItems: Array<ChatItem>) -> Array<ChatItem> {
|
||||
reversedChatItems
|
||||
.enumerated()
|
||||
.filter { (index, chatItem) in
|
||||
if let mergeCategory = chatItem.mergeCategory, index > 0 {
|
||||
mergeCategory != reversedChatItems[index - 1].mergeCategory
|
||||
} else {
|
||||
true
|
||||
.reduce(into: [ChatItem]()) { result, current in
|
||||
let (index, chatItem) = current
|
||||
if let mergeCategory = chatItem.mergeCategory,
|
||||
index > 0,
|
||||
mergeCategory == reversedChatItems[index - 1].mergeCategory {
|
||||
if var lastItem = result.last {
|
||||
lastItem.mergeCount += 1
|
||||
result[result.count - 1] = lastItem
|
||||
}
|
||||
return
|
||||
}
|
||||
result.append(chatItem)
|
||||
}
|
||||
.map { $0.element }
|
||||
}
|
||||
|
||||
|
||||
|
@ -434,6 +439,8 @@ struct ChatView: View {
|
|||
: voiceNoFrame
|
||||
? (g.size.width - 32)
|
||||
: (g.size.width - 32) * 0.84
|
||||
print("[mergedItems] \(ci.content.msgContent?.text ?? "")")
|
||||
|
||||
return ChatItemWithMenu(
|
||||
chat: $chat,
|
||||
chatItem: ci,
|
||||
|
|
|
@ -2379,6 +2379,7 @@ public struct ChatItem: Identifiable, Decodable, Hashable {
|
|||
|
||||
public var viewTimestamp = Date.now
|
||||
public var isLiveDummy: Bool = false
|
||||
public var mergeCount: Int = 0
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case chatDir, meta, content, formattedText, quotedItem, reactions, file
|
||||
|
|
Loading…
Add table
Reference in a new issue