summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-01 22:51:32 -0500
committerChristian Cleberg <[email protected]>2026-04-01 22:51:32 -0500
commit6e353462032937548e9661b85e97693d75e4f0bf (patch)
tree63552736564026e6158013039ca3ea10fd2d060c
parent7cc3e14f235a3c3e6719271116e49865c82c15da (diff)
downloadhutch-6e353462032937548e9661b85e97693d75e4f0bf.tar.gz
hutch-6e353462032937548e9661b85e97693d75e4f0bf.tar.bz2
hutch-6e353462032937548e9661b85e97693d75e4f0bf.zip
add confirmation to repo rename
-rw-r--r--Hutch/Views/Repositories/RepositorySettingsView.swift28
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()