mirror of
https://github.com/kkebo/DNSecure.git
synced 2026-03-11 08:54:36 +00:00
parent
2b1277347d
commit
13fbfc849a
2 changed files with 29 additions and 30 deletions
|
|
@ -41,8 +41,8 @@ struct ContentView {
|
|||
self.selection = self.servers.count - 1
|
||||
}
|
||||
|
||||
private func restoreFromPresets(resolvers: Set<Resolver>) {
|
||||
self.servers.append(contentsOf: resolvers)
|
||||
private func restoreFromPresets(resolver: Resolver) {
|
||||
self.servers.append(resolver)
|
||||
}
|
||||
|
||||
private func removeServers(at indexSet: IndexSet) {
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import SwiftUI
|
|||
|
||||
struct RestorationView {
|
||||
@Environment(\.dismiss) private var dismiss
|
||||
@State private var selection = Set<Resolver>()
|
||||
@State private var added = Set<Resolver>()
|
||||
@State private var keyword = ""
|
||||
let onAdd: (Set<Resolver>) -> Void
|
||||
let onAdd: (Resolver) -> Void
|
||||
|
||||
private var servers: Resolvers {
|
||||
guard !self.keyword.isEmpty else { return Presets.servers }
|
||||
|
|
@ -23,44 +23,43 @@ extension RestorationView: View {
|
|||
var body: some View {
|
||||
NavigationView {
|
||||
List(self.servers, id: \.self) { resolver in
|
||||
Button {
|
||||
if self.selection.contains(resolver) {
|
||||
self.selection.remove(resolver)
|
||||
} else {
|
||||
self.selection.insert(resolver)
|
||||
HStack {
|
||||
VStack(alignment: .leading) {
|
||||
Text(resolver.name)
|
||||
Text(resolver.configuration.description)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
} label: {
|
||||
HStack {
|
||||
VStack(alignment: .leading) {
|
||||
Text(resolver.name)
|
||||
Text(resolver.configuration.description)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
Spacer()
|
||||
if self.selection.contains(resolver) {
|
||||
Spacer()
|
||||
if self.added.contains(resolver) {
|
||||
HStack(spacing: 5) {
|
||||
Image(systemName: "checkmark")
|
||||
Text("Added")
|
||||
}
|
||||
.foregroundStyle(.secondary)
|
||||
} else {
|
||||
Button {
|
||||
self.added.insert(resolver)
|
||||
self.onAdd(resolver)
|
||||
} label: {
|
||||
HStack(spacing: 5) {
|
||||
Image(systemName: "plus")
|
||||
Text("Add")
|
||||
}
|
||||
}
|
||||
.buttonStyle(.borderedProminent)
|
||||
.buttonBorderShape(.capsule)
|
||||
}
|
||||
.tint(.primary)
|
||||
}
|
||||
}
|
||||
.navigationTitle("Presets")
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .primaryAction) {
|
||||
Button("Add") {
|
||||
self.onAdd(self.selection)
|
||||
self.dismiss()
|
||||
}
|
||||
.disabled(self.selection.isEmpty)
|
||||
}
|
||||
ToolbarItem(placement: .cancellationAction) {
|
||||
Button("Cancel", role: .cancel) {
|
||||
Button(role: .cancel) {
|
||||
self.dismiss()
|
||||
} label: {
|
||||
Image(systemName: "xmark")
|
||||
}
|
||||
}
|
||||
ToolbarItem(placement: .bottomBar) {
|
||||
Text("\(self.selection.count) Selected")
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(.stack)
|
||||
|
|
|
|||
Loading…
Reference in a new issue