diff --git a/lib/redux/invoice/invoice_actions.dart b/lib/redux/invoice/invoice_actions.dart index 2c626503e..7fa803a24 100644 --- a/lib/redux/invoice/invoice_actions.dart +++ b/lib/redux/invoice/invoice_actions.dart @@ -207,7 +207,10 @@ class EmailInvoiceRequest implements StartSaving { final String body; } -class EmailInvoiceSuccess implements StopSaving, PersistData {} +class EmailInvoiceSuccess implements StopSaving, PersistData { + EmailInvoiceSuccess({@required this.invoice}); + final InvoiceEntity invoice; +} class EmailInvoiceFailure implements StopSaving { EmailInvoiceFailure(this.error); diff --git a/lib/redux/invoice/invoice_middleware.dart b/lib/redux/invoice/invoice_middleware.dart index 137331dba..31f932953 100644 --- a/lib/redux/invoice/invoice_middleware.dart +++ b/lib/redux/invoice/invoice_middleware.dart @@ -334,7 +334,7 @@ Middleware _emailInvoice(InvoiceRepository repository) { .emailInvoice(store.state.credentials, origInvoice, action.template, action.subject, action.body) .then((InvoiceEntity invoice) { - store.dispatch(EmailInvoiceSuccess()); + store.dispatch(EmailInvoiceSuccess(invoice: invoice)); store.dispatch(LoadClient(clientId: origInvoice.clientId)); if (action.completer != null) { action.completer.complete(null); diff --git a/lib/redux/invoice/invoice_reducer.dart b/lib/redux/invoice/invoice_reducer.dart index 9eab54517..14dfbd9de 100644 --- a/lib/redux/invoice/invoice_reducer.dart +++ b/lib/redux/invoice/invoice_reducer.dart @@ -269,6 +269,7 @@ final invoicesReducer = combineReducers([ TypedReducer(_markInvoicesPaidSuccess), TypedReducer(_reverseInvoicesSuccess), TypedReducer(_cancelInvoicesSuccess), + TypedReducer(_emailInvoiceSuccess), TypedReducer(_archiveInvoiceRequest), TypedReducer(_archiveInvoiceSuccess), TypedReducer(_archiveInvoiceFailure), @@ -400,6 +401,12 @@ InvoiceState _restoreInvoiceRequest( }); } +InvoiceState _emailInvoiceSuccess( + InvoiceState invoiceState, EmailInvoiceSuccess action) { + return invoiceState + .rebuild((b) => b..map[action.invoice.id] = action.invoice); +} + InvoiceState _restoreInvoiceSuccess( InvoiceState invoiceState, RestoreInvoicesSuccess action) { return invoiceState.rebuild((b) { diff --git a/lib/ui/app/main_screen.dart b/lib/ui/app/main_screen.dart index 5afc1f699..7a3f37f77 100644 --- a/lib/ui/app/main_screen.dart +++ b/lib/ui/app/main_screen.dart @@ -460,10 +460,13 @@ class EntityScreens extends StatelessWidget { isPreviewVisible || (subRoute != 'view' && subRoute.isNotEmpty); int listFlex = 3; - const previewFlex = 2; + int previewFlex = 2; if (prefState.isModuleTable && !isPreviewShown) { listFlex = 5; + } else if (subRoute == 'email') { + listFlex = 2; + previewFlex = 3; } Widget child;