diff options
| author | Christian Cleberg <[email protected]> | 2026-03-19 17:05:16 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-03-19 17:05:16 -0500 |
| commit | 10d68934d4f45bf60e1736371ff790c50600198d (patch) | |
| tree | c70ca00041a884274d7b857c10a7b83d452d21b0 /Hutch/Views/Repositories/HgRepositorySettingsView.swift | |
| parent | b82bbeeea48ad27832a355c2a41408559c411104 (diff) | |
| download | hutch-2.1.tar.gz hutch-2.1.tar.bz2 hutch-2.1.zip | |
fix README height update and settings save alertsv2.1
Diffstat (limited to 'Hutch/Views/Repositories/HgRepositorySettingsView.swift')
| -rw-r--r-- | Hutch/Views/Repositories/HgRepositorySettingsView.swift | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/Hutch/Views/Repositories/HgRepositorySettingsView.swift b/Hutch/Views/Repositories/HgRepositorySettingsView.swift index 3894b9d..5f45da8 100644 --- a/Hutch/Views/Repositories/HgRepositorySettingsView.swift +++ b/Hutch/Views/Repositories/HgRepositorySettingsView.swift @@ -9,6 +9,7 @@ struct HgRepositorySettingsView: View { @State private var viewModel: HgRepositorySettingsViewModel? @State private var showDeleteConfirmation = false @State private var pendingACLDeletion: HgACLEntry? + @State private var saveResultAlert: SaveResultAlert? var body: some View { NavigationStack { @@ -88,6 +89,13 @@ struct HgRepositorySettingsView: View { Text("\(entry.entity.canonicalName) will lose \(entry.mode) access to this repository.") } } + .alert(item: $saveResultAlert) { alert in + Alert( + title: Text(alert.title), + message: Text(alert.message), + dismissButton: .default(Text("OK")) + ) + } } @ViewBuilder @@ -108,7 +116,13 @@ struct HgRepositorySettingsView: View { } Button { - Task { await viewModel.saveInfo() } + Task { + let didSave = await viewModel.saveInfo() + saveResultAlert = SaveResultAlert( + title: didSave ? "Settings Updated" : "Couldn't Update Settings", + message: didSave ? "Repository settings were saved." : (viewModel.error ?? "Please try again.") + ) + } } label: { if viewModel.isSavingInfo { ProgressView() @@ -188,7 +202,13 @@ struct HgRepositorySettingsView: View { Toggle("Hide this repository from public listings", isOn: Bindable(viewModel).editedNonPublishing) Button { - Task { await viewModel.saveInfo() } + Task { + let didSave = await viewModel.saveInfo() + saveResultAlert = SaveResultAlert( + title: didSave ? "Settings Updated" : "Couldn't Update Settings", + message: didSave ? "Repository settings were saved." : (viewModel.error ?? "Please try again.") + ) + } } label: { if viewModel.isSavingInfo { ProgressView() @@ -236,4 +256,11 @@ struct HgRepositorySettingsView: View { .disabled(viewModel.isDeleting) } } + + private struct SaveResultAlert: Identifiable { + let title: String + let message: String + + var id: String { "\(title)-\(message)" } + } } |
