mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-11 13:59:13 +00:00
Editing a failed echo, just cancels and resends it (#1207)
* editing a failed message means cancelling and resending it * changelog
This commit is contained in:
parent
3a6876f385
commit
b2ab6103c3
@ -64,7 +64,7 @@ enum TimelineItemMenuAction: Identifiable, Hashable {
|
||||
|
||||
var canAppearInFailedEcho: Bool {
|
||||
switch self {
|
||||
case .copy, .redact, .viewSource:
|
||||
case .copy, .edit, .redact, .viewSource:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
|
@ -151,11 +151,20 @@ class RoomTimelineController: RoomTimelineControllerProtocol {
|
||||
|
||||
func editMessage(_ newMessage: String, original itemID: String) async {
|
||||
MXLog.info("Edit message in \(roomID)")
|
||||
switch await roomProxy.editMessage(newMessage, original: itemID) {
|
||||
case .success:
|
||||
MXLog.info("Finished editing message")
|
||||
case .failure(let error):
|
||||
MXLog.error("Failed editing message with error: \(error)")
|
||||
if let timelineItem = timelineItems.first(where: { $0.id == itemID }),
|
||||
let item = timelineItem as? EventBasedTimelineItemProtocol,
|
||||
item.hasFailedToSend,
|
||||
let transactionID = item.properties.transactionID {
|
||||
MXLog.info("Editing a failed echo, will cancel and resend it as a new message")
|
||||
await cancelSend(transactionID)
|
||||
await sendMessage(newMessage)
|
||||
} else {
|
||||
switch await roomProxy.editMessage(newMessage, original: itemID) {
|
||||
case .success:
|
||||
MXLog.info("Finished editing message")
|
||||
case .failure(let error):
|
||||
MXLog.error("Failed editing message with error: \(error)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
1
changelog.d/pr-1207.change
Normal file
1
changelog.d/pr-1207.change
Normal file
@ -0,0 +1 @@
|
||||
Failed local echoes can be edited, they will just get cancelled and resent with the new content.
|
Loading…
x
Reference in New Issue
Block a user