diff --git a/lib/ui/credit/edit/credit_edit_items_vm.dart b/lib/ui/credit/edit/credit_edit_items_vm.dart index b51b0a605..adc922924 100644 --- a/lib/ui/credit/edit/credit_edit_items_vm.dart +++ b/lib/ui/credit/edit/credit_edit_items_vm.dart @@ -26,7 +26,7 @@ class CreditEditItemsScreen extends StatelessWidget { Widget build(BuildContext context) { return StoreConnector( converter: (Store store) { - return CreditEditItemsVM.fromStore(store, isTasks); + return CreditEditItemsVM.fromStore(store, onChanged, isTasks); }, builder: (context, viewModel) { if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) { @@ -34,7 +34,6 @@ class CreditEditItemsScreen extends StatelessWidget { viewModel: viewModel, entityViewModel: this.viewModel, isTasks: isTasks, - onChanged: onChanged, ); } else { return InvoiceEditItems( @@ -72,15 +71,19 @@ class CreditEditItemsVM extends EntityEditItemsVM { onMovedInvoiceItem: onMovedInvoiceItem, ); - factory CreditEditItemsVM.fromStore(Store store, bool isTasks) { + factory CreditEditItemsVM.fromStore( + Store store, Function onChanged, bool isTasks) { return CreditEditItemsVM( state: store.state, company: store.state.company, invoice: store.state.creditUIState.editing, invoiceItemIndex: store.state.creditUIState.editingItemIndex, - onRemoveInvoiceItemPressed: (index) => - store.dispatch(DeleteCreditItem(index)), - onDoneInvoiceItemPressed: () => store.dispatch(EditCreditItem()), + onRemoveInvoiceItemPressed: (index) { + store.dispatch(DeleteCreditItem(index)); + }, + onDoneInvoiceItemPressed: () { + store.dispatch(EditCreditItem()); + }, onChangedInvoiceItem: (creditItem, index) { final credit = store.state.creditUIState.editing; if (index == credit.lineItems.length) { @@ -94,9 +97,11 @@ class CreditEditItemsVM extends EntityEditItemsVM { .dispatch(UpdateCreditItem(creditItem: creditItem, index: index)); } }, - onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch( - MoveCreditItem(oldIndex: oldIndex, newIndex: newIndex), - ), + onMovedInvoiceItem: (oldIndex, newIndex) { + store.dispatch( + MoveCreditItem(oldIndex: oldIndex, newIndex: newIndex), + ); + }, ); } } diff --git a/lib/ui/invoice/edit/invoice_edit_items_desktop.dart b/lib/ui/invoice/edit/invoice_edit_items_desktop.dart index 37ac72523..1d897a4d7 100644 --- a/lib/ui/invoice/edit/invoice_edit_items_desktop.dart +++ b/lib/ui/invoice/edit/invoice_edit_items_desktop.dart @@ -23,13 +23,11 @@ class InvoiceEditItemsDesktop extends StatefulWidget { @required this.viewModel, @required this.entityViewModel, @required this.isTasks, - @required this.onChanged, }); final EntityEditItemsVM viewModel; final EntityEditVM entityViewModel; final bool isTasks; - final Function onChanged; @override _InvoiceEditItemsDesktopState createState() => @@ -57,16 +55,13 @@ class _InvoiceEditItemsDesktopState extends State { if (index == lineItems.length) { viewModel.onChangedInvoiceItem(lineItem, index); - widget.onChanged(); } else if (lineItem != lineItems[index]) { if (debounce) { _debouncer.run(() { viewModel.onChangedInvoiceItem(lineItem, index); - widget.onChanged(); }); } else { viewModel.onChangedInvoiceItem(lineItem, index); - widget.onChanged(); } } } diff --git a/lib/ui/invoice/edit/invoice_edit_items_vm.dart b/lib/ui/invoice/edit/invoice_edit_items_vm.dart index 02eb78160..2e9871e9d 100644 --- a/lib/ui/invoice/edit/invoice_edit_items_vm.dart +++ b/lib/ui/invoice/edit/invoice_edit_items_vm.dart @@ -25,7 +25,7 @@ class InvoiceEditItemsScreen extends StatelessWidget { Widget build(BuildContext context) { return StoreConnector( converter: (Store store) { - return InvoiceEditItemsVM.fromStore(store, isTasks); + return InvoiceEditItemsVM.fromStore(store, onChanged, isTasks); }, builder: (context, viewModel) { if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) { @@ -33,7 +33,6 @@ class InvoiceEditItemsScreen extends StatelessWidget { viewModel: viewModel, entityViewModel: this.viewModel, isTasks: isTasks, - onChanged: onChanged, ); } else { return InvoiceEditItems( @@ -97,17 +96,25 @@ class InvoiceEditItemsVM extends EntityEditItemsVM { onMovedInvoiceItem: onMovedInvoiceItem, ); - factory InvoiceEditItemsVM.fromStore(Store store, bool isTasks) { + factory InvoiceEditItemsVM.fromStore( + Store store, + Function onChanged, + bool isTasks, + ) { return InvoiceEditItemsVM( state: store.state, company: store.state.company, invoice: store.state.invoiceUIState.editing, invoiceItemIndex: store.state.invoiceUIState.editingItemIndex, - addLineItem: () => - store.dispatch(AddInvoiceItem(invoiceItem: InvoiceItemEntity())), + addLineItem: () { + store.dispatch(AddInvoiceItem(invoiceItem: InvoiceItemEntity())); + onChanged(); + }, deleteLineItem: null, - onRemoveInvoiceItemPressed: (index) => - store.dispatch(DeleteInvoiceItem(index)), + onRemoveInvoiceItemPressed: (index) { + store.dispatch(DeleteInvoiceItem(index)); + onChanged(); + }, clearSelectedInvoiceItem: () => store.dispatch(EditInvoiceItem()), onChangedInvoiceItem: (invoiceItem, index) { final invoice = store.state.invoiceUIState.editing; @@ -121,10 +128,14 @@ class InvoiceEditItemsVM extends EntityEditItemsVM { store.dispatch( UpdateInvoiceItem(invoiceItem: invoiceItem, index: index)); } + onChanged(); + }, + onMovedInvoiceItem: (oldIndex, newIndex) { + store.dispatch( + MoveInvoiceItem(oldIndex: oldIndex, newIndex: newIndex), + ); + onChanged(); }, - onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch( - MoveInvoiceItem(oldIndex: oldIndex, newIndex: newIndex), - ), ); } } diff --git a/lib/ui/quote/edit/quote_edit_items_vm.dart b/lib/ui/quote/edit/quote_edit_items_vm.dart index 035ece2e6..ec4bb360b 100644 --- a/lib/ui/quote/edit/quote_edit_items_vm.dart +++ b/lib/ui/quote/edit/quote_edit_items_vm.dart @@ -24,7 +24,7 @@ class QuoteEditItemsScreen extends StatelessWidget { Widget build(BuildContext context) { return StoreConnector( converter: (Store store) { - return QuoteEditItemsVM.fromStore(store); + return QuoteEditItemsVM.fromStore(store, onChanged); }, builder: (context, viewModel) { if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) { @@ -32,7 +32,6 @@ class QuoteEditItemsScreen extends StatelessWidget { viewModel: viewModel, entityViewModel: this.viewModel, isTasks: false, - onChanged: onChanged, ); } else { return InvoiceEditItems( @@ -70,15 +69,19 @@ class QuoteEditItemsVM extends EntityEditItemsVM { onMovedInvoiceItem: onMovedInvoiceItem, ); - factory QuoteEditItemsVM.fromStore(Store store) { + factory QuoteEditItemsVM.fromStore( + Store store, Function onChanged) { return QuoteEditItemsVM( state: store.state, company: store.state.company, invoice: store.state.quoteUIState.editing, invoiceItemIndex: store.state.quoteUIState.editingItemIndex, - onRemoveInvoiceItemPressed: (index) => - store.dispatch(DeleteQuoteItem(index)), - onDoneInvoiceItemPressed: () => store.dispatch(EditQuoteItem()), + onRemoveInvoiceItemPressed: (index) { + store.dispatch(DeleteQuoteItem(index)); + }, + onDoneInvoiceItemPressed: () { + store.dispatch(EditQuoteItem()); + }, onChangedInvoiceItem: (quoteItem, index) { final quote = store.state.quoteUIState.editing; if (index == quote.lineItems.length) { @@ -87,9 +90,11 @@ class QuoteEditItemsVM extends EntityEditItemsVM { store.dispatch(UpdateQuoteItem(quoteItem: quoteItem, index: index)); } }, - onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch( - MoveQuoteItem(oldIndex: oldIndex, newIndex: newIndex), - ), + onMovedInvoiceItem: (oldIndex, newIndex) { + store.dispatch( + MoveQuoteItem(oldIndex: oldIndex, newIndex: newIndex), + ); + }, ); } } diff --git a/lib/ui/recurring_invoice/edit/recurring_invoice_edit_items_vm.dart b/lib/ui/recurring_invoice/edit/recurring_invoice_edit_items_vm.dart index dcb4600c9..77a33f9a3 100644 --- a/lib/ui/recurring_invoice/edit/recurring_invoice_edit_items_vm.dart +++ b/lib/ui/recurring_invoice/edit/recurring_invoice_edit_items_vm.dart @@ -26,7 +26,7 @@ class RecurringInvoiceEditItemsScreen extends StatelessWidget { Widget build(BuildContext context) { return StoreConnector( converter: (Store store) { - return RecurringInvoiceEditItemsVM.fromStore(store, isTasks); + return RecurringInvoiceEditItemsVM.fromStore(store, onChanged, isTasks); }, builder: (context, viewModel) { if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) { @@ -34,7 +34,6 @@ class RecurringInvoiceEditItemsScreen extends StatelessWidget { viewModel: viewModel, entityViewModel: this.viewModel, isTasks: isTasks, - onChanged: onChanged, ); } else { return InvoiceEditItems( @@ -73,16 +72,19 @@ class RecurringInvoiceEditItemsVM extends EntityEditItemsVM { ); factory RecurringInvoiceEditItemsVM.fromStore( - Store store, bool isTasks) { + Store store, Function onChanged, bool isTasks) { return RecurringInvoiceEditItemsVM( state: store.state, company: store.state.company, invoice: store.state.recurringInvoiceUIState.editing, invoiceItemIndex: store.state.recurringInvoiceUIState.editingItemIndex, - onRemoveInvoiceItemPressed: (index) => - store.dispatch(DeleteRecurringInvoiceItem(index)), - onDoneInvoiceItemPressed: () => - store.dispatch(EditRecurringInvoiceItem()), + onRemoveInvoiceItemPressed: (index) { + store.dispatch(DeleteRecurringInvoiceItem(index)); + onChanged(); + }, + onDoneInvoiceItemPressed: () { + store.dispatch(EditRecurringInvoiceItem()); + }, onChangedInvoiceItem: (item, index) { final invoice = store.state.recurringInvoiceUIState.editing; if (index == invoice.lineItems.length) { @@ -94,10 +96,14 @@ class RecurringInvoiceEditItemsVM extends EntityEditItemsVM { } else { store.dispatch(UpdateRecurringInvoiceItem(item: item, index: index)); } + onChanged(); + }, + onMovedInvoiceItem: (oldIndex, newIndex) { + store.dispatch( + MoveRecurringInvoiceItem(oldIndex: oldIndex, newIndex: newIndex), + ); + onChanged(); }, - onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch( - MoveRecurringInvoiceItem(oldIndex: oldIndex, newIndex: newIndex), - ), ); } }