import SwiftUI struct ConnectionSettingsView: View { @ObservedObject var networkService: NetworkService @Binding var customHost: String @Binding var customPort: String @Environment(\.dismiss) private var dismiss var body: some View { NavigationView { Form { Section(header: Text("Raspberry Pi Connection")) { HStack { Text("IP Address:") Spacer() TextField("192.168.1.100", text: $customHost) .textFieldStyle(RoundedBorderTextFieldStyle()) .keyboardType(.decimalPad) } HStack { Text("Port:") Spacer() TextField("8080", text: $customPort) .textFieldStyle(RoundedBorderTextFieldStyle()) .keyboardType(.numberPad) } } Section(header: Text("Connection Info")) { HStack { Text("Status:") Spacer() Text(networkService.connectionStatus) .foregroundColor(networkService.isConnected ? .green : .red) } } Section(header: Text("Quick Actions")) { Button("Test Connection") { testConnection() } .disabled(customHost.isEmpty) Button("Send Status Request") { networkService.sendCommand(.status()) } .disabled(!networkService.isConnected) } } .navigationTitle("Connection Settings") .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .navigationBarLeading) { Button("Cancel") { dismiss() } } ToolbarItem(placement: .navigationBarTrailing) { Button("Done") { dismiss() } } } } } private func testConnection() { let host = customHost.isEmpty ? "192.168.1.100" : customHost let port = UInt16(customPort) ?? 8080 networkService.connect(host: host, port: port) } } struct ConnectionSettingsView_Previews: PreviewProvider { static var previews: some View { ConnectionSettingsView( networkService: NetworkService(), customHost: .constant("192.168.1.100"), customPort: .constant("8080") ) } }