diff --git a/Classes/Issues/Merge/GithubClient+Merge.swift b/Classes/Issues/Merge/GithubClient+Merge.swift index b57ee6f3b..2bfb90c12 100644 --- a/Classes/Issues/Merge/GithubClient+Merge.swift +++ b/Classes/Issues/Merge/GithubClient+Merge.swift @@ -18,7 +18,7 @@ extension GithubClient { repo: String, number: Int, type: IssueMergeType, - error: @escaping () -> Void + completionHandler: @escaping (_ success: Bool) -> Void ) { let newLabels = IssueLabelsModel( status: IssueLabelStatusModel( @@ -54,9 +54,10 @@ extension GithubClient { switch result { case .success: cache.set(value: optimisticResult) + completionHandler(true) case .failure(let err): Squawk.show(error: err) - error() + completionHandler(false) } } } diff --git a/Classes/Issues/Merge/IssueMergeSectionController.swift b/Classes/Issues/Merge/IssueMergeSectionController.swift index 35bfc539e..866b3243e 100644 --- a/Classes/Issues/Merge/IssueMergeSectionController.swift +++ b/Classes/Issues/Merge/IssueMergeSectionController.swift @@ -74,9 +74,14 @@ ListBindingSectionControllerSelectionDelegate { repo: model.repo, number: model.number, type: preferredMergeType, - error: { [weak self] in - self?.loading = false - self?.update(animated: true) + completionHandler: { [weak self] isSuccessfulMerge in + if isSuccessfulMerge { + Haptic.triggerNotification(.success) + } else { + self?.loading = false + self?.update(animated: true) + Haptic.triggerNotification(.error) + } }) }