This commit is contained in:
JinJiangHuang
2026-03-01 21:43:02 +08:00
parent 54de47deb1
commit 99a8cc799b
6 changed files with 622 additions and 11 deletions
+25
View File
@@ -21,6 +21,7 @@ struct ContentView: View {
setupView
}
}
.overlay(multiRepoSelectionOverlay)
.preferredColorScheme(.dark)
.onAppear {
//
@@ -35,6 +36,30 @@ struct ContentView: View {
}
}
@ViewBuilder
private var multiRepoSelectionOverlay: some View {
if let pending = settingsVM.pendingMultiRepoSelection {
SelectionModal(
title: "选择\(pending.target.title)仓库",
icon: "list.bullet.rectangle.portrait.fill",
items: pending.options,
selectedItem: nil,
itemTitle: { $0.name },
onSelect: { option in
Task {
await settingsVM.selectPendingMultiRepoOption(option)
if settingsVM.configSuccess {
appState.applyLoadedConfigState()
}
}
},
onCancel: {
settingsVM.cancelPendingMultiRepoSelection()
}
)
}
}
// MARK: -
private var mainTabView: some View {
+26
View File
@@ -335,11 +335,37 @@ struct SettingsView: View {
}
}
}
.overlay(multiRepoSelectionOverlay)
#if os(iOS)
.presentationDetents([.medium, .large])
#endif
}
@ViewBuilder
private var multiRepoSelectionOverlay: some View {
if let pending = viewModel.pendingMultiRepoSelection {
SelectionModal(
title: "选择\(pending.target.title)仓库",
icon: "list.bullet.rectangle.portrait.fill",
items: pending.options,
selectedItem: nil,
itemTitle: { $0.name },
onSelect: { option in
Task {
await viewModel.selectPendingMultiRepoOption(option)
if viewModel.configSuccess {
appState.applyLoadedConfigState()
showApiInput = false
}
}
},
onCancel: {
viewModel.cancelPendingMultiRepoSelection()
}
)
}
}
private var currentApiBinding: Binding<String> {
switch editingApiType {
case .vod: