diff options
| author | Christian Cleberg <[email protected]> | 2026-03-19 16:59:16 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-03-19 16:59:16 -0500 |
| commit | b82bbeeea48ad27832a355c2a41408559c411104 (patch) | |
| tree | 0af45101300c75970471573b09f878a1b3763b38 /Hutch/Views/Repositories | |
| parent | 9065ef6e92245a44390e336cc1ae515ae706cdd7 (diff) | |
| download | hutch-b82bbeeea48ad27832a355c2a41408559c411104.tar.gz hutch-b82bbeeea48ad27832a355c2a41408559c411104.tar.bz2 hutch-b82bbeeea48ad27832a355c2a41408559c411104.zip | |
v2.1: bundled polish and fixes
Diffstat (limited to 'Hutch/Views/Repositories')
8 files changed, 30 insertions, 42 deletions
diff --git a/Hutch/Views/Repositories/CommitDetailViewModel.swift b/Hutch/Views/Repositories/CommitDetailViewModel.swift index 5a8a23d..f0898f5 100644 --- a/Hutch/Views/Repositories/CommitDetailViewModel.swift +++ b/Hutch/Views/Repositories/CommitDetailViewModel.swift @@ -68,7 +68,7 @@ final class CommitDetailViewModel { let result = try await executeWithRetry() commit = result.repository?.revparse_single } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } isLoading = false diff --git a/Hutch/Views/Repositories/FileTreeViewModel.swift b/Hutch/Views/Repositories/FileTreeViewModel.swift index a9c86b4..c6fecbe 100644 --- a/Hutch/Views/Repositories/FileTreeViewModel.swift +++ b/Hutch/Views/Repositories/FileTreeViewModel.swift @@ -294,7 +294,7 @@ final class FileTreeViewModel { entries = [] } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -372,7 +372,7 @@ final class FileTreeViewModel { } entries = allEntries } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -397,7 +397,7 @@ final class FileTreeViewModel { viewingEntry = entry viewingObject = result.repository?.object ?? .unknown } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -449,7 +449,7 @@ final class FileTreeViewModel { } entries = allEntries } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } } diff --git a/Hutch/Views/Repositories/HgRepositoryDetailViewModel.swift b/Hutch/Views/Repositories/HgRepositoryDetailViewModel.swift index 30ee3bb..5a0298c 100644 --- a/Hutch/Views/Repositories/HgRepositoryDetailViewModel.swift +++ b/Hutch/Views/Repositories/HgRepositoryDetailViewModel.swift @@ -344,7 +344,7 @@ final class HgRepositoryDetailViewModel { summaryLoaded = true } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -367,7 +367,7 @@ final class HgRepositoryDetailViewModel { logCursor = nil hasMoreLog = false } else { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } } @@ -389,7 +389,7 @@ final class HgRepositoryDetailViewModel { logCursor = page.cursor hasMoreLog = page.cursor != nil } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -470,7 +470,7 @@ final class HgRepositoryDetailViewModel { await loadFiles(at: path) } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -515,7 +515,7 @@ final class HgRepositoryDetailViewModel { pathStack = path.isEmpty ? [] : path.split(separator: "/").map(String.init) files = [] } else { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } } diff --git a/Hutch/Views/Repositories/HgRepositorySettingsViewModel.swift b/Hutch/Views/Repositories/HgRepositorySettingsViewModel.swift index 3e431f8..6cb6e36 100644 --- a/Hutch/Views/Repositories/HgRepositorySettingsViewModel.swift +++ b/Hutch/Views/Repositories/HgRepositorySettingsViewModel.swift @@ -164,7 +164,7 @@ final class HgRepositorySettingsViewModel { editedNonPublishing = repository.nonPublishing ?? false } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -186,7 +186,7 @@ final class HgRepositorySettingsViewModel { responseType: HgUpdateRepositoryResponse.self ) } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -205,7 +205,7 @@ final class HgRepositorySettingsViewModel { ) acls = result.repository?.accessControlList.results ?? [] } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -239,7 +239,7 @@ final class HgRepositorySettingsViewModel { if message.localizedCaseInsensitiveContains("No such repository or user found") { self.error = "That user is not available on hg.sr.ht yet. They need to create or activate an hg.sr.ht repository first." } else { - self.error = message + self.error = error.userFacingMessage } } } @@ -263,7 +263,7 @@ final class HgRepositorySettingsViewModel { ) acls.removeAll { $0.id == entry.id } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -281,7 +281,7 @@ final class HgRepositorySettingsViewModel { ) didDelete = true } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } } diff --git a/Hutch/Views/Repositories/RepositoryDetailViewModel.swift b/Hutch/Views/Repositories/RepositoryDetailViewModel.swift index afc748d..e2eaf4d 100644 --- a/Hutch/Views/Repositories/RepositoryDetailViewModel.swift +++ b/Hutch/Views/Repositories/RepositoryDetailViewModel.swift @@ -161,7 +161,7 @@ final class RepositoryDetailViewModel { commitCursor = page.cursor hasMoreCommits = page.cursor != nil } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } isLoadingCommits = false @@ -183,7 +183,7 @@ final class RepositoryDetailViewModel { commitCursor = page.cursor hasMoreCommits = page.cursor != nil } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } isLoadingMoreCommits = false @@ -243,7 +243,7 @@ final class RepositoryDetailViewModel { branches = allRefs.filter { $0.name.hasPrefix("refs/heads/") } tags = allRefs.filter { $0.name.hasPrefix("refs/tags/") } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } isLoadingRefs = false @@ -337,7 +337,7 @@ final class RepositoryDetailViewModel { readmePath = nil readmeLoaded = true } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -389,7 +389,7 @@ final class RepositoryDetailViewModel { .filter { !$0.artifacts.results.isEmpty } .map { ReferenceWithArtifacts(name: $0.name, artifacts: $0.artifacts.results) } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } isLoadingArtifacts = false diff --git a/Hutch/Views/Repositories/RepositoryListView.swift b/Hutch/Views/Repositories/RepositoryListView.swift index 7cac8a8..90876e7 100644 --- a/Hutch/Views/Repositories/RepositoryListView.swift +++ b/Hutch/Views/Repositories/RepositoryListView.swift @@ -24,6 +24,7 @@ struct RepositoryListView: View { } label: { Image(systemName: "plus") } + .accessibilityLabel("Create repository") } } } diff --git a/Hutch/Views/Repositories/RepositoryListViewModel.swift b/Hutch/Views/Repositories/RepositoryListViewModel.swift index 5bdc4a5..fd5bafe 100644 --- a/Hutch/Views/Repositories/RepositoryListViewModel.swift +++ b/Hutch/Views/Repositories/RepositoryListViewModel.swift @@ -189,7 +189,7 @@ final class RepositoryListViewModel { } catch { // Only show error if we have no cached data to fall back on if repositories.isEmpty { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -272,20 +272,7 @@ final class RepositoryListViewModel { } private func repositoryCreationErrorMessage(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 repository. \(message)" + "Couldn’t create the repository. \(error.userFacingMessage)" } /// Fetch ALL repositories by paginating through all available pages. diff --git a/Hutch/Views/Repositories/RepositorySettingsViewModel.swift b/Hutch/Views/Repositories/RepositorySettingsViewModel.swift index 71d6ab6..ca8e501 100644 --- a/Hutch/Views/Repositories/RepositorySettingsViewModel.swift +++ b/Hutch/Views/Repositories/RepositorySettingsViewModel.swift @@ -173,7 +173,7 @@ final class RepositorySettingsViewModel { responseType: UpdateRepoInfoResponse.self ) } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -196,7 +196,7 @@ final class RepositorySettingsViewModel { ) updatedName = result.updateRepository.name } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -255,7 +255,7 @@ final class RepositorySettingsViewModel { ) acls = result.repository?.acls.results ?? [] } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -286,7 +286,7 @@ final class RepositorySettingsViewModel { } newACLEntity = "" } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -331,7 +331,7 @@ final class RepositorySettingsViewModel { ) acls.removeAll { $0.id == entry.id } } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } @@ -357,7 +357,7 @@ final class RepositorySettingsViewModel { ) didDelete = true } catch { - self.error = error.localizedDescription + self.error = error.userFacingMessage } } } |
