/** * TrackerMap * Copyright (C) 2021-2022 Iván Ávalos , Henoch Ojeda * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ import SwiftUI import shared struct UnitCommandsView: View { @ObservedObject var unitCommandsViewModel = UnitCommandsViewModel() var unit: UnitInformation init(unit: UnitInformation) { self.unit = unit unitCommandsViewModel.fetchCommands(id: unit.device.id) } var body: some View { VStack { List { Picker("commands", selection: $unitCommandsViewModel.selectedId) { ForEach(unitCommandsViewModel.commands, id: \.id) { command in Text(command.description_ ?? "\(command.id!)") .tag(Int(truncating: command.id!)) } }.pickerStyle(InlinePickerStyle()) Button { unitCommandsViewModel.showConfirmation = true } label: { Label("send-command", systemImage: "paperplane") } .disabled(unitCommandsViewModel.notSelected) .actionSheet(isPresented: $unitCommandsViewModel.showConfirmation) { ActionSheet(title: Text("send-command-confirm"), buttons: [ .cancel(), .destructive(Text("send-command")) { unitCommandsViewModel.sendCommand() } ]) } } } } }