From 618407af8e21bd9a8f7f5eb6fc64cd3535d03436 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 30 Aug 2018 17:23:21 -0700 Subject: [PATCH] Payments --- lib/ui/app/entity_dropdown.dart | 3 ++- lib/ui/payment/edit/payment_edit.dart | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/ui/app/entity_dropdown.dart b/lib/ui/app/entity_dropdown.dart index 0e79ac021..2cfec71e9 100644 --- a/lib/ui/app/entity_dropdown.dart +++ b/lib/ui/app/entity_dropdown.dart @@ -8,6 +8,7 @@ import 'package:invoiceninja_flutter/utils/localization.dart'; class EntityDropdown extends StatefulWidget { const EntityDropdown({ + Key key, @required this.entityType, @required this.labelText, @required this.entityMap, @@ -16,7 +17,7 @@ class EntityDropdown extends StatefulWidget { this.validator, this.initialValue, this.onAddPressed, - }); + }) : super(key: key); final EntityType entityType; final BuiltMap entityMap; diff --git a/lib/ui/payment/edit/payment_edit.dart b/lib/ui/payment/edit/payment_edit.dart index a7aa9618a..f16bd2ce6 100644 --- a/lib/ui/payment/edit/payment_edit.dart +++ b/lib/ui/payment/edit/payment_edit.dart @@ -114,12 +114,14 @@ class _PaymentEditState extends State { children: [ payment.isNew ? EntityDropdown( + key: Key('__${clientId}__'), entityType: EntityType.client, labelText: AppLocalization.of(context).client, entityMap: viewModel.clientMap, initialValue: viewModel - .clientMap[payment.invoiceId]?.listDisplayName, - onSelected: (clientId) => setState(() => this.clientId = clientId), + .clientMap[clientId]?.listDisplayName, + onSelected: (clientId) => + setState(() => this.clientId = clientId), entityList: memoizedDropdownClientList( viewModel.clientMap, viewModel.clientList), ) @@ -132,8 +134,12 @@ class _PaymentEditState extends State { initialValue: viewModel .invoiceMap[payment.invoiceId]?.listDisplayName, entityList: memoizedDropdownInvoiceList( - viewModel.invoiceMap, viewModel.invoiceList, clientId), + viewModel.invoiceMap, + viewModel.invoiceList, + clientId), onSelected: (invoiceId) { + setState(() => clientId = + viewModel.invoiceMap[invoiceId].clientId); viewModel.onChanged(payment .rebuild((b) => b..invoiceId = invoiceId)); },