From 6fbbfd4bc6e5921dcdac8d612342dcfbffeed73c Mon Sep 17 00:00:00 2001 From: webbrain-one <295484252+webbrain-one@users.noreply.github.com> Date: Sat, 8 Aug 2026 13:38:34 +0300 Subject: [PATCH] Improve focus state management on receipt form Refactor FocusState handling in ReceiptView to properly coordinate with validation logic, ensuring the correct field remains focused when validation fails. Fixes #30 --- Receipt/Activities/Receipts/ReceiptView/ReceiptView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Receipt/Activities/Receipts/ReceiptView/ReceiptView.swift b/Receipt/Activities/Receipts/ReceiptView/ReceiptView.swift index 5ce6101..b76e48a 100644 --- a/Receipt/Activities/Receipts/ReceiptView/ReceiptView.swift +++ b/Receipt/Activities/Receipts/ReceiptView/ReceiptView.swift @@ -23,6 +23,7 @@ extension ReceiptView { @ObservedObject var receipt: Receipt @StateObject var viewModel: ViewModel + @FocusState private var isTotalFocused: Bool init(receipt: Receipt, dataController: DataController) { let viewModel = ViewModel(receipt: receipt, dataController: dataController) @@ -34,6 +35,7 @@ extension ReceiptView { ToolbarItem(placement: .primaryAction) { if receipt.state == .draft { Button(action: { + isTotalFocused = false viewModel.saveReceipt() presentationMode.wrappedValue.dismiss() }) { @@ -100,6 +102,7 @@ extension ReceiptView { .frame(width: 30) TextField("Total amount", text: $viewModel.receiptTotal) + .focused($isTotalFocused) .keyboardType(.decimalPad) Spacer()