From 1b73f74fb74475c803896b08dcf6cdd9950e9f6f Mon Sep 17 00:00:00 2001 From: Ryan ZHAO <> Date: Thu, 5 Sep 2024 15:33:58 +1000 Subject: [PATCH] add timeout error modal for clearing data from network --- Session/Settings/NukeDataModal.swift | 38 ++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/Session/Settings/NukeDataModal.swift b/Session/Settings/NukeDataModal.swift index 5a0dd2d67..79b6cb2f9 100644 --- a/Session/Settings/NukeDataModal.swift +++ b/Session/Settings/NukeDataModal.swift @@ -204,17 +204,35 @@ final class NukeDataModal: Modal { case .finished: break case .failure(let error): self?.dismiss(animated: true, completion: nil) // Dismiss the loader - - let modal: ConfirmationModal = ConfirmationModal( - targetView: self?.view, - info: ConfirmationModal.Info( - title: "clearDataError".localized(), - body: .text("\(error)"), - cancelTitle: "okay".localized(), - cancelStyle: .alert_text + + switch error { + case NetworkError.timeout, NetworkError.gatewayTimeout: + let modal: ConfirmationModal = ConfirmationModal( + targetView: self?.view, + info: ConfirmationModal.Info( + title: "clearDataAll".localized(), + body: .text("clearDataErrorDescriptionGeneric".localized()), + confirmTitle: "clear".localized(), + confirmStyle: .danger, + cancelStyle: .alert_text + ) { [weak self] _ in + self?.clearDeviceOnly() + } + ) + self?.present(modal, animated: true) + + default: + let modal: ConfirmationModal = ConfirmationModal( + targetView: self?.view, + info: ConfirmationModal.Info( + title: "clearDataError".localized(), + body: .text("\(error)"), + cancelTitle: "okay".localized(), + cancelStyle: .alert_text + ) ) - ) - self?.present(modal, animated: true) + self?.present(modal, animated: true) + } } }, receiveValue: { confirmations in