diff options
| -rw-r--r-- | Hutch/Views/Repositories/RepositorySettingsView.swift | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/Hutch/Views/Repositories/RepositorySettingsView.swift b/Hutch/Views/Repositories/RepositorySettingsView.swift index ff72335..aca2ff9 100644 --- a/Hutch/Views/Repositories/RepositorySettingsView.swift +++ b/Hutch/Views/Repositories/RepositorySettingsView.swift @@ -10,6 +10,7 @@ struct RepositorySettingsView: View { @Environment(\.dismiss) private var dismiss @State private var viewModel: RepositorySettingsViewModel? @State private var showDeleteConfirmation = false + @State private var showRenameConfirmation = false @State private var pendingACLDeletion: ACLEntry? @State private var saveResultAlert: SaveResultAlert? @@ -55,6 +56,25 @@ struct RepositorySettingsView: View { } .srhtErrorBanner(error: $vm.error) .alert( + "Rename repository to \(viewModel.editedName.trimmingCharacters(in: .whitespacesAndNewlines))?", + isPresented: $showRenameConfirmation + ) { + Button("Cancel", role: .cancel) { + // Alert dismissal is implicit; no additional action required. + } + Button("Rename", role: .destructive) { + Task { + await viewModel.rename() + if let newName = viewModel.updatedName { + onRenamed(newName) + dismiss() + } + } + } + } message: { + Text("This will change the repository URL. Existing clones will be redirected but links may break.") + } + .alert( "Permanently delete \(repository.owner.canonicalName)/\(repository.name)?", isPresented: $showDeleteConfirmation ) { @@ -168,13 +188,7 @@ struct RepositorySettingsView: View { .foregroundStyle(.secondary) Button { - Task { - await viewModel.rename() - if let newName = viewModel.updatedName { - onRenamed(newName) - dismiss() - } - } + showRenameConfirmation = true } label: { if viewModel.isRenaming { ProgressView() |
