diff options
| author | Christian Cleberg <[email protected]> | 2026-03-18 20:03:39 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-03-18 20:03:39 -0500 |
| commit | 090c829a5f800266da7f4ff0e59fb389f0dbfdd8 (patch) | |
| tree | 8861ac737cf90f38a740f9f7ce913f192585af2a /Hutch/Views/Tickets/TrackerListViewModel.swift | |
| parent | 01ce5ee73feb8bda35749a186c0efcd3d6d7a060 (diff) | |
| download | hutch-090c829a5f800266da7f4ff0e59fb389f0dbfdd8.tar.gz hutch-090c829a5f800266da7f4ff0e59fb389f0dbfdd8.tar.bz2 hutch-090c829a5f800266da7f4ff0e59fb389f0dbfdd8.zip | |
show tracker creation errors inside the creation sheet
Diffstat (limited to 'Hutch/Views/Tickets/TrackerListViewModel.swift')
| -rw-r--r-- | Hutch/Views/Tickets/TrackerListViewModel.swift | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Hutch/Views/Tickets/TrackerListViewModel.swift b/Hutch/Views/Tickets/TrackerListViewModel.swift index 9704071..978a610 100644 --- a/Hutch/Views/Tickets/TrackerListViewModel.swift +++ b/Hutch/Views/Tickets/TrackerListViewModel.swift @@ -139,7 +139,7 @@ final class TrackerListViewModel { trackers.insert(tracker, at: 0) return tracker } catch { - self.error = "Couldn’t create the tracker. \(error.localizedDescription)" + self.error = trackerCreationErrorMessage(for: error) return nil } } @@ -163,4 +163,21 @@ final class TrackerListViewModel { private struct CreateTrackerResponse: Decodable, Sendable { let createTracker: TrackerSummary } + + private func trackerCreationErrorMessage(for error: Error) -> String { + let message: String + + if let srhtError = error as? SRHTError { + switch srhtError { + case .graphQLErrors(let errors): + message = errors.map(\.message).joined(separator: "\n") + default: + message = srhtError.localizedDescription + } + } else { + message = error.localizedDescription + } + + return "Couldn’t create the tracker. \(message)" + } } |
