Skip to content
This repository has been archived by the owner on Jun 7, 2020. It is now read-only.

Commit

Permalink
Merge pull request #2142 from RocketChat/imp/optimistic_edit.2138
Browse files Browse the repository at this point in the history
[IMPROVEMENT] Update UI optimistically after editing message
  • Loading branch information
filipealva authored Aug 29, 2018
2 parents f3a68ee + 76e06d2 commit af13024
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
12 changes: 12 additions & 0 deletions Rocket.Chat/API/Clients/MessagesClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,18 @@ struct MessagesClient: APIClient {
return false
}

// optimistic UI update

let message = Message(value: message)
try? realm?.write {
message.updatedAt = Date()
message.temporary = true
message.text = text
realm?.add(message, update: true)
}

// send request

let request = UpdateMessageRequest(roomId: message.rid, msgId: id, text: text)

api.fetch(request) { response in
Expand Down
10 changes: 8 additions & 2 deletions Rocket.Chat/Models/Subscription/Subscription.swift
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,15 @@ extension Subscription {
return URL(string: "\(baseURL)/avatar/%22\(encodedName)?format=jpeg")
}

func setTemporaryMessagesFailed() {
func setTemporaryMessagesFailed(user: User? = AuthManager.currentUser()) {
guard let user = user else {
return
}

try? realm?.write {
messages.filter("temporary = true").forEach {
messages.filter("temporary = true").filter({
$0.user == user
}).forEach {
$0.temporary = false
$0.failed = true
}
Expand Down

0 comments on commit af13024

Please # to comment.