mirror of
https://github.com/kkebo/DNSecure.git
synced 2026-03-11 08:54:36 +00:00
Merge pull request #149 from kkebo/127-deactivate-on-editing
fix: deactivate the active server when it's modified
This commit is contained in:
commit
e5c25ad31d
2 changed files with 5 additions and 27 deletions
|
|
@ -9,7 +9,6 @@
|
|||
import SwiftUI
|
||||
|
||||
struct ContentView {
|
||||
@Environment(\.scenePhase) private var scenePhase
|
||||
@Environment(\.horizontalSizeClass) private var hSizeClass
|
||||
@Binding var servers: Resolvers
|
||||
@Binding var usedID: String?
|
||||
|
|
@ -239,19 +238,6 @@ extension ContentView: View {
|
|||
self.updateStatus()
|
||||
}
|
||||
}
|
||||
.onChange(of: self.scenePhase) { phase in
|
||||
if phase == .background {
|
||||
// FIXME: This is a workaround for self.$severs[i].
|
||||
// That cannot save settings as soon as it is modified.
|
||||
guard let id = self.usedID,
|
||||
let uuid = UUID(uuidString: id),
|
||||
let server = self.servers.find(by: uuid)
|
||||
else {
|
||||
return
|
||||
}
|
||||
self.saveSettings(of: server)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS, deprecated: 16)
|
||||
|
|
@ -307,19 +293,6 @@ extension ContentView: View {
|
|||
self.updateStatus()
|
||||
}
|
||||
}
|
||||
.onChange(of: self.scenePhase) { phase in
|
||||
if phase == .background {
|
||||
// FIXME: This is a workaround for self.$severs[i].
|
||||
// That cannot save settings as soon as it is modified.
|
||||
guard let id = self.usedID,
|
||||
let uuid = UUID(uuidString: id),
|
||||
let server = self.servers.find(by: uuid)
|
||||
else {
|
||||
return
|
||||
}
|
||||
self.saveSettings(of: server)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ToolbarContentBuilder private var toolbarContent: some ToolbarContent {
|
||||
|
|
|
|||
|
|
@ -85,6 +85,11 @@ extension DetailView: View {
|
|||
}
|
||||
}
|
||||
.navigationTitle(self.server.name)
|
||||
.onChange(of: self.server) { [oldValue = self.server] newValue in
|
||||
guard self.isSelected, oldValue.id == newValue.id else { return }
|
||||
// When the selected server's configuration is modified, the server will be deactivated or deselected so that the user can save the changes by toggling the “Use This Server” switch again.
|
||||
self.isSelected = false
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder private var serverConfigurationSections: some View {
|
||||
|
|
|
|||
Loading…
Reference in a new issue