fix an issue if a global deletion fails, the UI should toast and stay on the deletion modal.

pull/894/head
Ryan ZHAO 3 months ago
parent 8ca0b19391
commit d076892424

@ -2036,6 +2036,7 @@ extension ConversationVC:
confirmStyle: .danger, confirmStyle: .danger,
cancelTitle: "cancel".localized(), cancelTitle: "cancel".localized(),
cancelStyle: .alert_text, cancelStyle: .alert_text,
dismissOnConfirm: false,
onConfirm: { [weak self, dependencies = viewModel.dependencies] modal in onConfirm: { [weak self, dependencies = viewModel.dependencies] modal in
/// Determine the selected action index /// Determine the selected action index
let selectedIndex: Int = { let selectedIndex: Int = {
@ -2061,24 +2062,29 @@ extension ConversationVC:
.publisherForAction(at: selectedIndex, using: dependencies) .publisherForAction(at: selectedIndex, using: dependencies)
.sinkUntilComplete( .sinkUntilComplete(
receiveCompletion: { result in receiveCompletion: { result in
DispatchQueue.main.async { switch result {
self?.viewModel.showToast( case .finished:
text: { DispatchQueue.main.async {
switch result { self?.viewModel.showToast(
case .finished: text: "deleteMessageDeleted"
return "deleteMessageDeleted" .putNumber(messagesToDelete.count)
.putNumber(messagesToDelete.count) .localized(),
.localized() backgroundColor: .backgroundSecondary,
inset: (self?.inputAccessoryView?.frame.height ?? Values.mediumSpacing) + Values.smallSpacing
case .failure: )
return "deleteMessageFailed"
.putNumber(messagesToDelete.count) modal.dismiss(animated: true)
.localized() }
} case .failure:
}(), DispatchQueue.main.async {
backgroundColor: .backgroundSecondary, self?.viewModel.showToast(
inset: (self?.inputAccessoryView?.frame.height ?? Values.mediumSpacing) + Values.smallSpacing text: "deleteMessageFailed"
) .putNumber(messagesToDelete.count)
.localized(),
backgroundColor: .backgroundSecondary,
inset: (self?.inputAccessoryView?.frame.height ?? Values.mediumSpacing) + Values.smallSpacing
)
}
} }
} }
) )

Loading…
Cancel
Save