This commit is contained in:
unknown 2018-07-02 11:20:22 +03:00
parent 6a5f2c1f77
commit 9e54f08bde
8 changed files with 47 additions and 38 deletions

View File

@ -20,7 +20,6 @@ import 'package:invoiceninja/ui/product/product_screen.dart';
import 'package:invoiceninja/redux/app/app_reducer.dart'; import 'package:invoiceninja/redux/app/app_reducer.dart';
import 'package:invoiceninja/redux/app/app_state.dart'; import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/redux/auth/auth_middleware.dart'; import 'package:invoiceninja/redux/auth/auth_middleware.dart';
import 'package:invoiceninja/redux/auth/auth_actions.dart';
import 'package:invoiceninja/redux/dashboard/dashboard_actions.dart'; import 'package:invoiceninja/redux/dashboard/dashboard_actions.dart';
import 'package:invoiceninja/redux/dashboard/dashboard_middleware.dart'; import 'package:invoiceninja/redux/dashboard/dashboard_middleware.dart';
import 'package:invoiceninja/redux/product/product_actions.dart'; import 'package:invoiceninja/redux/product/product_actions.dart';
@ -94,22 +93,22 @@ class _InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
return LoginScreen(); return LoginScreen();
}, },
DashboardScreen.route: (context) { DashboardScreen.route: (context) {
widget.store.dispatch(ViewDashboard()); widget.store.dispatch(LoadDashboard());
return DashboardScreen(); return DashboardScreen();
}, },
ProductScreen.route: (context) { ProductScreen.route: (context) {
widget.store.dispatch(ViewProductList()); widget.store.dispatch(LoadProducts());
return ProductScreen(); return ProductScreen();
}, },
ProductEditScreen.route: (context) => ProductEditScreen(), ProductEditScreen.route: (context) => ProductEditScreen(),
ClientScreen.route: (context) { ClientScreen.route: (context) {
widget.store.dispatch(ViewClientList()); widget.store.dispatch(LoadClients());
return ClientScreen(); return ClientScreen();
}, },
ClientViewScreen.route: (context) => ClientViewScreen(), ClientViewScreen.route: (context) => ClientViewScreen(),
ClientEditScreen.route: (context) => ClientEditScreen(), ClientEditScreen.route: (context) => ClientEditScreen(),
InvoiceScreen.route: (context) { InvoiceScreen.route: (context) {
widget.store.dispatch(ViewInvoiceList()); widget.store.dispatch(LoadInvoices());
return InvoiceScreen(); return InvoiceScreen();
}, },
InvoiceViewScreen.route: (context) => InvoiceViewScreen(), InvoiceViewScreen.route: (context) => InvoiceViewScreen(),

View File

@ -5,7 +5,10 @@ import 'package:invoiceninja/data/models/models.dart';
import 'package:built_collection/built_collection.dart'; import 'package:built_collection/built_collection.dart';
import 'package:invoiceninja/redux/app/app_actions.dart'; import 'package:invoiceninja/redux/app/app_actions.dart';
class ViewClientList implements PersistUI {} class ViewClientList implements PersistUI {
final BuildContext context;
ViewClientList(this.context);
}
class ViewClient implements PersistUI { class ViewClient implements PersistUI {
final int clientId; final int clientId;

View File

@ -34,15 +34,6 @@ List<Middleware<AppState>> createStoreClientsMiddleware([
]; ];
} }
Middleware<AppState> _viewClientList() {
return (Store<AppState> store, dynamic action, NextDispatcher next) {
store.dispatch(LoadClients());
store.dispatch(UpdateCurrentRoute(ClientScreen.route));
next(action);
};
}
Middleware<AppState> _editClient() { Middleware<AppState> _editClient() {
return (Store<AppState> store, dynamic action, NextDispatcher next) { return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action); next(action);
@ -61,6 +52,15 @@ Middleware<AppState> _viewClient() {
}; };
} }
Middleware<AppState> _viewClientList() {
return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action);
store.dispatch(UpdateCurrentRoute(ClientScreen.route));
Navigator.of(action.context).pushReplacementNamed(ClientScreen.route);
};
}
Middleware<AppState> _archiveClient(ClientRepository repository) { Middleware<AppState> _archiveClient(ClientRepository repository) {
return (Store<AppState> store, dynamic action, NextDispatcher next) { return (Store<AppState> store, dynamic action, NextDispatcher next) {
var origClient = store.state.clientState.map[action.clientId]; var origClient = store.state.clientState.map[action.clientId];

View File

@ -5,7 +5,10 @@ import 'package:invoiceninja/data/models/models.dart';
import 'package:built_collection/built_collection.dart'; import 'package:built_collection/built_collection.dart';
import 'package:invoiceninja/redux/app/app_actions.dart'; import 'package:invoiceninja/redux/app/app_actions.dart';
class ViewInvoiceList implements PersistUI {} class ViewInvoiceList implements PersistUI {
final BuildContext context;
ViewInvoiceList(this.context);
}
class ViewInvoice implements PersistUI { class ViewInvoice implements PersistUI {
final int invoiceId; final int invoiceId;

View File

@ -36,15 +36,6 @@ List<Middleware<AppState>> createStoreInvoicesMiddleware([
]; ];
} }
Middleware<AppState> _viewInvoiceList() {
return (Store<AppState> store, dynamic action, NextDispatcher next) {
store.dispatch(LoadInvoices());
store.dispatch(UpdateCurrentRoute(InvoiceScreen.route));
next(action);
};
}
Middleware<AppState> _viewInvoice() { Middleware<AppState> _viewInvoice() {
return (Store<AppState> store, dynamic action, NextDispatcher next) { return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action); next(action);
@ -54,6 +45,15 @@ Middleware<AppState> _viewInvoice() {
}; };
} }
Middleware<AppState> _viewInvoiceList() {
return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action);
store.dispatch(UpdateCurrentRoute(InvoiceScreen.route));
Navigator.of(action.context).pushReplacementNamed(InvoiceScreen.route);
};
}
Middleware<AppState> _editInvoice() { Middleware<AppState> _editInvoice() {
return (Store<AppState> store, dynamic action, NextDispatcher next) { return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action); next(action);

View File

@ -4,7 +4,10 @@ import 'package:invoiceninja/data/models/models.dart';
import 'package:built_collection/built_collection.dart'; import 'package:built_collection/built_collection.dart';
import 'package:invoiceninja/redux/app/app_actions.dart'; import 'package:invoiceninja/redux/app/app_actions.dart';
class ViewProductList implements PersistUI {} class ViewProductList implements PersistUI {
final BuildContext context;
ViewProductList(this.context);
}
class EditProduct implements PersistUI { class EditProduct implements PersistUI {
final ProductEntity product; final ProductEntity product;

View File

@ -30,15 +30,6 @@ List<Middleware<AppState>> createStoreProductsMiddleware([
]; ];
} }
Middleware<AppState> _viewProductList() {
return (Store<AppState> store, dynamic action, NextDispatcher next) {
store.dispatch(LoadProducts());
store.dispatch(UpdateCurrentRoute(ProductScreen.route));
next(action);
};
}
Middleware<AppState> _editProduct() { Middleware<AppState> _editProduct() {
return (Store<AppState> store, dynamic action, NextDispatcher next) { return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action); next(action);
@ -48,6 +39,15 @@ Middleware<AppState> _editProduct() {
}; };
} }
Middleware<AppState> _viewProductList() {
return (Store<AppState> store, dynamic action, NextDispatcher next) {
next(action);
store.dispatch(UpdateCurrentRoute(ProductScreen.route));
Navigator.of(action.context).pushReplacementNamed(ProductScreen.route);
};
}
Middleware<AppState> _archiveProduct(ProductRepository repository) { Middleware<AppState> _archiveProduct(ProductRepository repository) {
return (Store<AppState> store, dynamic action, NextDispatcher next) { return (Store<AppState> store, dynamic action, NextDispatcher next) {
var origProduct = store.state.productState.map[action.productId]; var origProduct = store.state.productState.map[action.productId];

View File

@ -8,6 +8,7 @@ import 'package:invoiceninja/redux/dashboard/dashboard_actions.dart';
import 'package:invoiceninja/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja/redux/invoice/invoice_actions.dart';
import 'package:invoiceninja/redux/product/product_actions.dart'; import 'package:invoiceninja/redux/product/product_actions.dart';
import 'package:invoiceninja/data/models/entities.dart'; import 'package:invoiceninja/data/models/entities.dart';
import 'package:invoiceninja/redux/ui/ui_actions.dart';
import 'package:invoiceninja/ui/app/app_drawer_vm.dart'; import 'package:invoiceninja/ui/app/app_drawer_vm.dart';
import 'package:invoiceninja/ui/client/client_screen.dart'; import 'package:invoiceninja/ui/client/client_screen.dart';
import 'package:invoiceninja/ui/invoice/invoice_screen.dart'; import 'package:invoiceninja/ui/invoice/invoice_screen.dart';
@ -104,7 +105,7 @@ class AppDrawer extends StatelessWidget {
DrawerTile( DrawerTile(
icon: FontAwesomeIcons.users, icon: FontAwesomeIcons.users,
title: AppLocalization.of(context).clients, title: AppLocalization.of(context).clients,
onTap: () => navigator.pushReplacementNamed(ClientScreen.route), onTap: () => store.dispatch(ViewClientList(context)),
onCreateTap: () { onCreateTap: () {
navigator.pop(); navigator.pop();
store.dispatch( store.dispatch(
@ -114,7 +115,7 @@ class AppDrawer extends StatelessWidget {
DrawerTile( DrawerTile(
icon: FontAwesomeIcons.cube, icon: FontAwesomeIcons.cube,
title: AppLocalization.of(context).products, title: AppLocalization.of(context).products,
onTap: () => navigator.pushReplacementNamed(ProductScreen.route), onTap: () => store.dispatch(ViewProductList(context)),
onCreateTap: () { onCreateTap: () {
navigator.pop(); navigator.pop();
store.dispatch( store.dispatch(
@ -124,7 +125,7 @@ class AppDrawer extends StatelessWidget {
DrawerTile( DrawerTile(
icon: FontAwesomeIcons.filePdfO, icon: FontAwesomeIcons.filePdfO,
title: AppLocalization.of(context).invoices, title: AppLocalization.of(context).invoices,
onTap: () => navigator.pushReplacementNamed(InvoiceScreen.route), onTap: () => store.dispatch(ViewProductList(context)),
onCreateTap: () { onCreateTap: () {
navigator.pop(); navigator.pop();
store.dispatch( store.dispatch(