diff --git a/DNSecure/Views/DetailView.swift b/DNSecure/Views/DetailView.swift index 9b1e9cd..588adec 100644 --- a/DNSecure/Views/DetailView.swift +++ b/DNSecure/Views/DetailView.swift @@ -110,9 +110,19 @@ extension DetailView: View { @ViewBuilder private var serverConfigurationSections: some View { switch self.server.configuration { case .dnsOverTLS(let configuration): - DoTSections(server: self.$server, configuration: configuration) + DoTSections( + configuration: .init( + get: { configuration }, + set: { self.server.configuration = .dnsOverTLS($0) } + ) + ) case .dnsOverHTTPS(let configuration): - DoHSections(server: self.$server, configuration: configuration) + DoHSections( + configuration: .init( + get: { configuration }, + set: { self.server.configuration = .dnsOverHTTPS($0) } + ) + ) } } } diff --git a/DNSecure/Views/DoHSections.swift b/DNSecure/Views/DoHSections.swift index a47828f..f85d13b 100644 --- a/DNSecure/Views/DoHSections.swift +++ b/DNSecure/Views/DoHSections.swift @@ -7,52 +7,39 @@ import SwiftUI -private enum FocusedField { - case address - case serverURL -} - struct DoHSections { - @Binding var server: Resolver - @State var configuration: DoHConfiguration - @FocusState private var focusedField: FocusedField? - - private func commit() { - self.server.configuration = .dnsOverHTTPS(self.configuration) - } + @Binding var configuration: DoHConfiguration } extension DoHSections: View { var body: some View { Section { ForEach(0..