diff --git a/lib/main.dart b/lib/main.dart index e19900cef..02decca44 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -98,11 +98,11 @@ class _InvoiceNinjaAppState extends State { }, ProductEditScreen.route: (context) => ProductEditScreen(), ClientScreen.route: (context) { - widget.store.dispatch(LoadClientsAction()); + widget.store.dispatch(LoadClients()); return ClientScreen(); }, InvoiceScreen.route: (context) { - widget.store.dispatch(LoadInvoicesAction()); + widget.store.dispatch(LoadInvoices()); return InvoiceScreen(); }, }, diff --git a/lib/redux/app/loading_reducer.dart b/lib/redux/app/loading_reducer.dart index 0e2dfde3c..0e1ac343e 100644 --- a/lib/redux/app/loading_reducer.dart +++ b/lib/redux/app/loading_reducer.dart @@ -1,95 +1,18 @@ import 'package:invoiceninja/redux/app/app_actions.dart'; -import 'package:invoiceninja/redux/client/client_actions.dart'; import 'package:redux/redux.dart'; -import 'package:invoiceninja/redux/product/product_actions.dart'; -import 'package:invoiceninja/redux/invoice/invoice_actions.dart'; -import 'package:invoiceninja/redux/auth/auth_actions.dart'; final loadingReducer = combineReducers([ - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - TypedReducer(_setLoading), TypedReducer(_setLoaded), - - //TypedReducer(_setLoading), - //TypedReducer(_setLoaded), - //TypedReducer(_setLoaded), - - // Products - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - // Clients - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - // Invoices - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - - TypedReducer(_setLoading), - TypedReducer(_setLoaded), - TypedReducer(_setLoaded), - ]); bool _setLoading(bool state, action) { + print('set loading to true'); return true; } bool _setLoaded(bool state, action) { + print('set loading to false'); return false; } diff --git a/lib/redux/auth/auth_actions.dart b/lib/redux/auth/auth_actions.dart index aeec07d2c..39679bbed 100644 --- a/lib/redux/auth/auth_actions.dart +++ b/lib/redux/auth/auth_actions.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'package:flutter/widgets.dart'; +import 'package:invoiceninja/redux/app/app_actions.dart'; import 'package:invoiceninja/redux/app/app_state.dart'; class LoadStateRequest { @@ -22,7 +23,7 @@ class UserLoginLoaded { UserLoginLoaded(this.email, this.password, this.url, this.secret); } -class UserLoginRequest { +class UserLoginRequest implements StartLoading { final Completer completer; final String email; final String password; @@ -32,9 +33,9 @@ class UserLoginRequest { UserLoginRequest(this.completer, this.email, this.password, this.url, this.secret); } -class UserLoginSuccess {} +class UserLoginSuccess implements StopLoading {} -class UserLoginFailure { +class UserLoginFailure implements StopLoading { final String error; UserLoginFailure(this.error); diff --git a/lib/redux/client/client_actions.dart b/lib/redux/client/client_actions.dart index 67ed35c6c..78438fba1 100644 --- a/lib/redux/client/client_actions.dart +++ b/lib/redux/client/client_actions.dart @@ -4,16 +4,16 @@ import 'package:invoiceninja/data/models/models.dart'; import 'package:built_collection/built_collection.dart'; import 'package:invoiceninja/redux/app/app_actions.dart'; -class LoadClientsAction { +class LoadClients { final Completer completer; final bool force; - LoadClientsAction([this.completer, this.force = false]); + LoadClients([this.completer, this.force = false]); } -class LoadClientsRequest {} +class LoadClientsRequest implements StartLoading {} -class LoadClientsFailure { +class LoadClientsFailure implements StopLoading { final dynamic error; LoadClientsFailure(this.error); @@ -23,7 +23,7 @@ class LoadClientsFailure { } } -class LoadClientsSuccess implements PersistData { +class LoadClientsSuccess implements StopLoading, PersistData { final BuiltList clients; LoadClientsSuccess(this.clients); @@ -38,74 +38,74 @@ class SelectClientAction { SelectClientAction(this.client); } -class SaveClientRequest { +class SaveClientRequest implements StartLoading { final Completer completer; final ClientEntity client; SaveClientRequest(this.completer, this.client); } -class SaveClientSuccess implements PersistData { +class SaveClientSuccess implements StopLoading, PersistData { final ClientEntity client; SaveClientSuccess(this.client); } -class SaveClientFailure { +class SaveClientFailure implements StopLoading { final String error; SaveClientFailure (this.error); } -class ArchiveClientRequest { +class ArchiveClientRequest implements StartLoading { final Completer completer; final int clientId; ArchiveClientRequest(this.completer, this.clientId); } -class ArchiveClientSuccess implements PersistData { +class ArchiveClientSuccess implements StopLoading, PersistData { final ClientEntity client; ArchiveClientSuccess(this.client); } -class ArchiveClientFailure { +class ArchiveClientFailure implements StopLoading { final ClientEntity client; ArchiveClientFailure(this.client); } -class DeleteClientRequest { +class DeleteClientRequest implements StartLoading { final Completer completer; final int clientId; DeleteClientRequest(this.completer, this.clientId); } -class DeleteClientSuccess implements PersistData { +class DeleteClientSuccess implements StopLoading, PersistData { final ClientEntity client; DeleteClientSuccess(this.client); } -class DeleteClientFailure { +class DeleteClientFailure implements StopLoading { final ClientEntity client; DeleteClientFailure(this.client); } -class RestoreClientRequest { +class RestoreClientRequest implements StartLoading { final Completer completer; final int clientId; RestoreClientRequest(this.completer, this.clientId); } -class RestoreClientSuccess implements PersistData { +class RestoreClientSuccess implements StopLoading, PersistData { final ClientEntity client; RestoreClientSuccess(this.client); } -class RestoreClientFailure { +class RestoreClientFailure implements StopLoading { final ClientEntity client; RestoreClientFailure(this.client); } -class AddClientSuccess implements PersistData { +class AddClientSuccess implements StopLoading, PersistData { final ClientEntity client; AddClientSuccess(this.client); } diff --git a/lib/redux/client/client_middleware.dart b/lib/redux/client/client_middleware.dart index cf6e8165a..ddcc857ae 100644 --- a/lib/redux/client/client_middleware.dart +++ b/lib/redux/client/client_middleware.dart @@ -15,7 +15,7 @@ List> createStoreClientsMiddleware([ final restoreClient = _restoreClient(repository); return [ - TypedMiddleware(loadClients), + TypedMiddleware(loadClients), TypedMiddleware(saveClient), TypedMiddleware(archiveClient), TypedMiddleware(deleteClient), diff --git a/lib/redux/dashboard/dashboard_actions.dart b/lib/redux/dashboard/dashboard_actions.dart index 4af85fdb2..4139a30cb 100644 --- a/lib/redux/dashboard/dashboard_actions.dart +++ b/lib/redux/dashboard/dashboard_actions.dart @@ -10,9 +10,9 @@ class LoadDashboardAction { LoadDashboardAction([this.completer, this.force = false]); } -class LoadDashboardRequest {} +class LoadDashboardRequest implements StartLoading {} -class LoadDashboardFailure { +class LoadDashboardFailure implements StopLoading { final dynamic error; LoadDashboardFailure(this.error); @@ -23,7 +23,7 @@ class LoadDashboardFailure { } } -class LoadDashboardSuccess implements PersistData { +class LoadDashboardSuccess implements StopLoading, PersistData { final DashboardEntity data; LoadDashboardSuccess(this.data); diff --git a/lib/redux/dashboard/dashboard_middleware.dart b/lib/redux/dashboard/dashboard_middleware.dart index c91a82dbf..13399d6e0 100644 --- a/lib/redux/dashboard/dashboard_middleware.dart +++ b/lib/redux/dashboard/dashboard_middleware.dart @@ -37,7 +37,7 @@ Middleware _createLoadDashboard(DashboardRepository repository) { action.completer.complete(null); } if (state.clientState.isStale) { - store.dispatch(LoadClientsAction()); + store.dispatch(LoadClients()); } } ).catchError((error) => store.dispatch(LoadDashboardFailure(error))); diff --git a/lib/redux/invoice/invoice_actions.dart b/lib/redux/invoice/invoice_actions.dart index 7d44ec507..9936ab0e8 100644 --- a/lib/redux/invoice/invoice_actions.dart +++ b/lib/redux/invoice/invoice_actions.dart @@ -4,16 +4,16 @@ import 'package:invoiceninja/data/models/models.dart'; import 'package:built_collection/built_collection.dart'; import 'package:invoiceninja/redux/app/app_actions.dart'; -class LoadInvoicesAction { +class LoadInvoices { final Completer completer; final bool force; - LoadInvoicesAction([this.completer, this.force = false]); + LoadInvoices([this.completer, this.force = false]); } -class LoadInvoicesRequest {} +class LoadInvoicesRequest implements StartLoading {} -class LoadInvoicesFailure { +class LoadInvoicesFailure implements StopLoading { final dynamic error; LoadInvoicesFailure(this.error); @@ -23,7 +23,7 @@ class LoadInvoicesFailure { } } -class LoadInvoicesSuccess implements PersistData { +class LoadInvoicesSuccess implements StopLoading, PersistData { final BuiltList invoices; LoadInvoicesSuccess(this.invoices); @@ -38,74 +38,74 @@ class SelectInvoiceAction { SelectInvoiceAction(this.invoice); } -class SaveInvoiceRequest { +class SaveInvoiceRequest implements StartLoading { final Completer completer; final InvoiceEntity invoice; SaveInvoiceRequest(this.completer, this.invoice); } -class SaveInvoiceSuccess implements PersistData { +class SaveInvoiceSuccess implements StopLoading, PersistData { final InvoiceEntity invoice; SaveInvoiceSuccess(this.invoice); } -class SaveInvoiceFailure { +class SaveInvoiceFailure implements StopLoading { final String error; SaveInvoiceFailure (this.error); } -class ArchiveInvoiceRequest { +class ArchiveInvoiceRequest implements StartLoading { final Completer completer; final int invoiceId; ArchiveInvoiceRequest(this.completer, this.invoiceId); } -class ArchiveInvoiceSuccess implements PersistData { +class ArchiveInvoiceSuccess implements StopLoading, PersistData { final InvoiceEntity invoice; ArchiveInvoiceSuccess(this.invoice); } -class ArchiveInvoiceFailure { +class ArchiveInvoiceFailure implements StopLoading { final InvoiceEntity invoice; ArchiveInvoiceFailure(this.invoice); } -class DeleteInvoiceRequest { +class DeleteInvoiceRequest implements StartLoading { final Completer completer; final int invoiceId; DeleteInvoiceRequest(this.completer, this.invoiceId); } -class DeleteInvoiceSuccess implements PersistData { +class DeleteInvoiceSuccess implements StopLoading, PersistData { final InvoiceEntity invoice; DeleteInvoiceSuccess(this.invoice); } -class DeleteInvoiceFailure { +class DeleteInvoiceFailure implements StopLoading { final InvoiceEntity invoice; DeleteInvoiceFailure(this.invoice); } -class RestoreInvoiceRequest { +class RestoreInvoiceRequest implements StartLoading { final Completer completer; final int invoiceId; RestoreInvoiceRequest(this.completer, this.invoiceId); } -class RestoreInvoiceSuccess implements PersistData { +class RestoreInvoiceSuccess implements StopLoading, PersistData { final InvoiceEntity invoice; RestoreInvoiceSuccess(this.invoice); } -class RestoreInvoiceFailure { +class RestoreInvoiceFailure implements StopLoading { final InvoiceEntity invoice; RestoreInvoiceFailure(this.invoice); } -class AddInvoiceSuccess implements PersistData { +class AddInvoiceSuccess implements StopLoading, PersistData { final InvoiceEntity invoice; AddInvoiceSuccess(this.invoice); } diff --git a/lib/redux/invoice/invoice_middleware.dart b/lib/redux/invoice/invoice_middleware.dart index ee37f4325..d25d2b4c8 100644 --- a/lib/redux/invoice/invoice_middleware.dart +++ b/lib/redux/invoice/invoice_middleware.dart @@ -15,7 +15,7 @@ List> createStoreInvoicesMiddleware([ final restoreInvoice = _restoreInvoice(repository); return [ - TypedMiddleware(loadInvoices), + TypedMiddleware(loadInvoices), TypedMiddleware(saveInvoice), TypedMiddleware(archiveInvoice), TypedMiddleware(deleteInvoice), @@ -128,7 +128,7 @@ Middleware _loadInvoices(InvoiceRepository repository) { action.completer.complete(null); } if (state.clientState.isStale) { - store.dispatch(LoadClientsAction()); + store.dispatch(LoadClients()); } }).catchError((error) => store.dispatch(LoadInvoicesFailure(error))); diff --git a/lib/redux/product/product_actions.dart b/lib/redux/product/product_actions.dart index 0a1aacce4..a515bc049 100644 --- a/lib/redux/product/product_actions.dart +++ b/lib/redux/product/product_actions.dart @@ -11,9 +11,9 @@ class LoadProducts { LoadProducts([this.completer, this.force = false]); } -class LoadProductsRequest {} +class LoadProductsRequest implements StartLoading {} -class LoadProductsFailure { +class LoadProductsFailure implements StopLoading { final dynamic error; LoadProductsFailure(this.error); @@ -23,7 +23,7 @@ class LoadProductsFailure { } } -class LoadProductsSuccess implements PersistData { +class LoadProductsSuccess implements PersistData, StopLoading { final BuiltList products; LoadProductsSuccess(this.products); @@ -39,78 +39,78 @@ class EditProduct { EditProduct({this.product, this.context}); } -class SaveProductRequest { +class SaveProductRequest implements StartLoading { final Completer completer; final ProductEntity product; SaveProductRequest(this.completer, this.product); } -class SaveProductSuccess implements PersistData { +class SaveProductSuccess implements StopLoading, PersistData { final ProductEntity product; SaveProductSuccess(this.product); } -class SaveProductFailure { +class AddProductSuccess implements StopLoading, PersistData { + final ProductEntity product; + AddProductSuccess(this.product); +} + +class SaveProductFailure implements StopLoading { final String error; SaveProductFailure (this.error); } -class ArchiveProductRequest { +class ArchiveProductRequest implements StartLoading { final Completer completer; final int productId; ArchiveProductRequest(this.completer, this.productId); } -class ArchiveProductSuccess implements PersistData { +class ArchiveProductSuccess implements StopLoading, PersistData { final ProductEntity product; ArchiveProductSuccess(this.product); } -class ArchiveProductFailure { +class ArchiveProductFailure implements StopLoading { final ProductEntity product; ArchiveProductFailure(this.product); } -class DeleteProductRequest { +class DeleteProductRequest implements StartLoading { final Completer completer; final int productId; DeleteProductRequest(this.completer, this.productId); } -class DeleteProductSuccess implements PersistData { +class DeleteProductSuccess implements StopLoading, PersistData { final ProductEntity product; DeleteProductSuccess(this.product); } -class DeleteProductFailure { +class DeleteProductFailure implements StopLoading { final ProductEntity product; DeleteProductFailure(this.product); } -class RestoreProductRequest { +class RestoreProductRequest implements StartLoading { final Completer completer; final int productId; RestoreProductRequest(this.completer, this.productId); } -class RestoreProductSuccess implements PersistData { +class RestoreProductSuccess implements StopLoading, PersistData { final ProductEntity product; RestoreProductSuccess(this.product); } -class RestoreProductFailure { +class RestoreProductFailure implements StopLoading { final ProductEntity product; RestoreProductFailure(this.product); } -class AddProductSuccess implements PersistData { - final ProductEntity product; - AddProductSuccess(this.product); -} - class SearchProducts { final String search; diff --git a/lib/ui/client/client_list_vm.dart b/lib/ui/client/client_list_vm.dart index ce3cfbe37..1efe31f6f 100644 --- a/lib/ui/client/client_list_vm.dart +++ b/lib/ui/client/client_list_vm.dart @@ -54,7 +54,7 @@ class ClientListVM { static ClientListVM fromStore(Store store) { Future _handleRefresh(BuildContext context) { final Completer completer = new Completer(); - store.dispatch(LoadClientsAction(completer, true)); + store.dispatch(LoadClients(completer, true)); return completer.future.then((_) { Scaffold.of(context).showSnackBar(SnackBar( content: SnackBarRow( diff --git a/lib/ui/invoice/invoice_list_vm.dart b/lib/ui/invoice/invoice_list_vm.dart index 216399e98..f32e6d3c1 100644 --- a/lib/ui/invoice/invoice_list_vm.dart +++ b/lib/ui/invoice/invoice_list_vm.dart @@ -55,7 +55,7 @@ class InvoiceListVM { static InvoiceListVM fromStore(Store store) { Future _handleRefresh(BuildContext context) { final Completer completer = new Completer(); - store.dispatch(LoadInvoicesAction(completer, true)); + store.dispatch(LoadInvoices(completer, true)); return completer.future.then((_) { Scaffold.of(context).showSnackBar(SnackBar( content: SnackBarRow(