import SwiftUI struct QueryEditorSheet: View { @State var parameters: [(key: String, value: String)] let onSave: ([(key: String, value: String)]) -> Void @Environment(\.dismiss) private var dismiss var body: some View { NavigationStack { List { ForEach(parameters.indices, id: \.self) { index in HStack(spacing: 8) { TextField("Key", text: Binding( get: { parameters[index].key }, set: { parameters[index].key = $0 } )) .textInputAutocapitalization(.never) .autocorrectionDisabled() .font(.subheadline) TextField("Value", text: Binding( get: { parameters[index].value }, set: { parameters[index].value = $0 } )) .textInputAutocapitalization(.never) .autocorrectionDisabled() .font(.subheadline) } } .onDelete { indexSet in parameters.remove(atOffsets: indexSet) } Button { parameters.append((key: "", value: "")) } label: { Label("Add Parameter", systemImage: "plus.circle.fill") } } .navigationTitle("Edit Query Parameters") .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .topBarLeading) { Button("Cancel") { dismiss() } } ToolbarItem(placement: .topBarTrailing) { Button("Done") { let filtered = parameters.filter { !$0.key.isEmpty } onSave(filtered) dismiss() } .fontWeight(.semibold) } } } } }