Add subviews for message and image

This commit is contained in:
David Langley
2021-09-13 09:26:21 +01:00
parent 725c324c19
commit 9e8a90ec2a
8 changed files with 198 additions and 24 deletions
@@ -55,20 +55,34 @@ class TemplateRoomChatViewModel: ObservableObject, TemplateRoomChatViewModelProt
private static func makeBubbles(messages: [TemplateRoomChatMessage]) -> [TemplateRoomChatBubble] {
var bubbleOrder = [String]()
var bubbleMap = [String:TemplateRoomChatBubble]()
messages.enumerated().forEach { i, message in
let currentMessage = messages[i]
if i > 0 {
let lastMessage = messages[i-1]
} else {
TemplateRoomChatBubble(
id: message.,
avatar: <#T##AvatarInputProtocol#>,
displayName: <#T##String?#>,
items: <#T##[TemplateRoomChatBubbleItem]#>
if i > 0,
messages[i-1].sender.id == message.sender.id,
var existingBubble = bubbleMap[messages[i-1].id] {
let messageItem = TemplateRoomChatBubbleMessageItem(
id: message.id,
body: message.body
)
existingBubble.items.append(.message(messageItem))
bubbleMap[existingBubble.id] = existingBubble
} else {
let messageItem = TemplateRoomChatBubbleMessageItem(
id: message.id,
body: message.body
)
let bubble = TemplateRoomChatBubble(
id: message.id,
senderAvatar: message.sender.avatarData,
senderDisplayName: message.sender.displayName,
items: [.message(messageItem)]
)
bubbleOrder.append(bubble.id)
bubbleMap[bubble.id] = bubble
}
}
return bubbleOrder.compactMap({ bubbleMap[$0] })
}
// MARK: - Public