AddCarbsRootView.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import SwiftUI
  2. extension AddCarbs {
  3. struct RootView: BaseView {
  4. @EnvironmentObject var viewModel: ViewModel<Provider>
  5. private var formatter: NumberFormatter {
  6. let formatter = NumberFormatter()
  7. formatter.numberStyle = .decimal
  8. formatter.maximumFractionDigits = 0
  9. return formatter
  10. }
  11. var body: some View {
  12. Form {
  13. if let carbsReq = viewModel.carbsRequired {
  14. Section {
  15. HStack {
  16. Text("Carbs required")
  17. Spacer()
  18. Text(formatter.string(from: carbsReq as NSNumber)! + " g")
  19. }
  20. }
  21. }
  22. Section {
  23. HStack {
  24. Text("Amount")
  25. Spacer()
  26. DecimalTextField("0", value: $viewModel.carbs, formatter: formatter, autofocus: true, cleanInput: true)
  27. Text("grams").foregroundColor(.secondary)
  28. }
  29. DatePicker("Date", selection: $viewModel.date)
  30. }
  31. Section {
  32. Button { viewModel.add() }
  33. label: { Text("Add") }
  34. .disabled(viewModel.carbs <= 0)
  35. }
  36. }
  37. .navigationTitle("Add Carbs")
  38. .navigationBarTitleDisplayMode(.automatic)
  39. .navigationBarItems(leading: Button("Close", action: viewModel.hideModal))
  40. }
  41. }
  42. }