|
|
|
@ -737,11 +737,17 @@ final class ConversationVC: BaseVC, ConversationSearchControllerDelegate, UITabl
|
|
|
|
|
|
|
|
|
|
// Store the 'sentMessageBeforeUpdate' state locally
|
|
|
|
|
let didSendMessageBeforeUpdate: Bool = self.viewModel.sentMessageBeforeUpdate
|
|
|
|
|
let wasOnlyUpdates: Bool = (
|
|
|
|
|
changeset.count == 1 &&
|
|
|
|
|
changeset[0].elementUpdated.count == changeset[0].changeCount
|
|
|
|
|
)
|
|
|
|
|
self.viewModel.sentMessageBeforeUpdate = false
|
|
|
|
|
|
|
|
|
|
// When sending a message we want to reload the UI instantly (with any form of animation the message
|
|
|
|
|
// sending feels somewhat unresponsive but an instant update feels snappy)
|
|
|
|
|
guard !didSendMessageBeforeUpdate else {
|
|
|
|
|
// When sending a message, or if there were only cell updates (ie. read status changes) we want to
|
|
|
|
|
// reload the UI instantly (with any form of animation the message sending feels somewhat unresponsive
|
|
|
|
|
// but an instant update feels snappy and without the instant update there is some overlap of the read
|
|
|
|
|
// status text change even though there shouldn't be any animations)
|
|
|
|
|
guard !didSendMessageBeforeUpdate && !wasOnlyUpdates else {
|
|
|
|
|
self.viewModel.updateInteractionData(updatedData)
|
|
|
|
|
self.tableView.reloadData()
|
|
|
|
|
|
|
|
|
|