From 2ac7129ebc84847739d5aaeeacb9ff4fd542f2e4 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 28 Apr 2021 20:53:33 +0300 Subject: [PATCH] Correct line items --- .../edit/invoice_edit_items_desktop.dart | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/ui/invoice/edit/invoice_edit_items_desktop.dart b/lib/ui/invoice/edit/invoice_edit_items_desktop.dart index 2e3f77b75..264457d62 100644 --- a/lib/ui/invoice/edit/invoice_edit_items_desktop.dart +++ b/lib/ui/invoice/edit/invoice_edit_items_desktop.dart @@ -45,16 +45,24 @@ class _InvoiceEditItemsDesktopState extends State { }); } - void _onChanged(InvoiceItemEntity lineItem, int index) { + void _onChanged( + InvoiceItemEntity lineItem, + int index, { + bool debounce = true, + }) { final viewModel = widget.viewModel; final lineItems = viewModel.invoice.lineItems; if (index == lineItems.length) { viewModel.onChangedInvoiceItem(lineItem, index); } else if (lineItem != lineItems[index]) { - _debouncer.run(() { + if (debounce) { + _debouncer.run(() { + viewModel.onChangedInvoiceItem(lineItem, index); + }); + } else { viewModel.onChangedInvoiceItem(lineItem, index); - }); + } } } @@ -298,6 +306,7 @@ class _InvoiceEditItemsDesktopState extends State { if (!kIsWeb) { return; } + final item = lineItems[index]; final product = productState.map[productId]; final client = @@ -335,7 +344,7 @@ class _InvoiceEditItemsDesktopState extends State { ..taxName2 = product.taxName2 ..taxRate3 = product.taxRate3 ..taxName3 = product.taxName3); - _onChanged(updatedItem, index); + _onChanged(updatedItem, index, debounce: false); _updateTable(); }, ); @@ -344,6 +353,7 @@ class _InvoiceEditItemsDesktopState extends State { if (kIsWeb) { return; } + final item = lineItems[index]; final product = productState.map[suggestion]; final client = @@ -361,7 +371,6 @@ class _InvoiceEditItemsDesktopState extends State { company.currencyId] .precision); } - final updatedItem = item.rebuild((b) => b ..productKey = product.productKey ..notes = item.isTask ? item.notes : product.notes @@ -383,7 +392,7 @@ class _InvoiceEditItemsDesktopState extends State { ..taxName2 = product.taxName2 ..taxRate3 = product.taxRate3 ..taxName3 = product.taxName3); - _onChanged(updatedItem, index); + _onChanged(updatedItem, index, debounce: false); _updateTable(); }, textFieldConfiguration: