Commit 488ca82002

488ca82002eb38c8d758d6222b9f26c0e6ec685b

parent: 9d3e116944

Unsigned

cmc <hello@cleberg.net> · 2026-04-02 03:51 UTC

add confirmation to repo rename

Layout: unified · split

Hutch/Views/Repositories/RepositorySettingsView.swift +21 −7
@@ -10,6 +10,7 @@ struct RepositorySettingsView: View {
1010 @Environment(\.dismiss) private var dismiss
1111 @State private var viewModel: RepositorySettingsViewModel?
1212 @State private var showDeleteConfirmation = false
13 @State private var showRenameConfirmation = false
1314 @State private var pendingACLDeletion: ACLEntry?
1415 @State private var saveResultAlert: SaveResultAlert?
1516
@@ -54,6 +55,25 @@ struct RepositorySettingsView: View {
5455 deleteSection(viewModel)
5556 }
5657 .srhtErrorBanner(error: $vm.error)
58 .alert(
59 "Rename repository to \(viewModel.editedName.trimmingCharacters(in: .whitespacesAndNewlines))?",
60 isPresented: $showRenameConfirmation
61 ) {
62 Button("Cancel", role: .cancel) {
63 // Alert dismissal is implicit; no additional action required.
64 }
65 Button("Rename", role: .destructive) {
66 Task {
67 await viewModel.rename()
68 if let newName = viewModel.updatedName {
69 onRenamed(newName)
70 dismiss()
71 }
72 }
73 }
74 } message: {
75 Text("This will change the repository URL. Existing clones will be redirected but links may break.")
76 }
5777 .alert(
5878 "Permanently delete \(repository.owner.canonicalName)/\(repository.name)?",
5979 isPresented: $showDeleteConfirmation
@@ -168,13 +188,7 @@ struct RepositorySettingsView: View {
168188 .foregroundStyle(.secondary)
169189
170190 Button {
171 Task {
172 await viewModel.rename()
173 if let newName = viewModel.updatedName {
174 onRenamed(newName)
175 dismiss()
176 }
177 }
191 showRenameConfirmation = true
178192 } label: {
179193 if viewModel.isRenaming {
180194 ProgressView()