From b8998cd7ccbc6b45d6fd16d7db6cc538328cbe51 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 22 Jun 2020 07:16:27 +0300 Subject: [PATCH] Fixes for refresh data --- lib/data/models/invoice_model.dart | 8 +++++-- lib/redux/app/app_state.dart | 1 + lib/redux/auth/auth_actions.dart | 7 ------ lib/redux/auth/auth_middleware.dart | 35 ++++++----------------------- lib/redux/auth/auth_reducer.dart | 8 ------- 5 files changed, 14 insertions(+), 45 deletions(-) diff --git a/lib/data/models/invoice_model.dart b/lib/data/models/invoice_model.dart index 78690ed87..6b9806119 100644 --- a/lib/data/models/invoice_model.dart +++ b/lib/data/models/invoice_model.dart @@ -560,11 +560,15 @@ abstract class InvoiceEntity extends Object if (userCompany.canEditEntity(this)) { if (!isQuote && !isCredit && isSent) { - if (statusId != kInvoiceStatusReversed) { + if (![ + kInvoiceStatusReversed, + kInvoiceStatusCancelled, + ].contains(statusId)) { actions.add(EntityAction.cancel); } - if (userCompany.company.isModuleEnabled(EntityType.credit)) { + if (userCompany.company.isModuleEnabled(EntityType.credit) && + statusId != kInvoiceStatusReversed) { actions.add(EntityAction.reverse); } } diff --git a/lib/redux/app/app_state.dart b/lib/redux/app/app_state.dart index e4058957b..44d7b66d0 100644 --- a/lib/redux/app/app_state.dart +++ b/lib/redux/app/app_state.dart @@ -551,6 +551,7 @@ abstract class AppState implements Built { @override String toString() { //return 'Token: ${userCompanyStates.map((state) => state.token.token).where((name) => name.isNotEmpty).first}'; + return 'URL: ${authState.url}'; return 'Layout: ${prefState.appLayout}, Route: ${uiState.currentRoute} Prev: ${uiState.previousRoute}'; } } diff --git a/lib/redux/auth/auth_actions.dart b/lib/redux/auth/auth_actions.dart index 9d5e5e01d..8b0eae610 100644 --- a/lib/redux/auth/auth_actions.dart +++ b/lib/redux/auth/auth_actions.dart @@ -15,13 +15,6 @@ class LoadStateSuccess { final AppState state; } -class UserLoginLoaded { - UserLoginLoaded(this.email, this.url); - - final String email; - final String url; -} - class OAuthLoginRequest implements StartLoading { OAuthLoginRequest({ @required this.completer, diff --git a/lib/redux/auth/auth_middleware.dart b/lib/redux/auth/auth_middleware.dart index e2e44be0e..2331b2593 100644 --- a/lib/redux/auth/auth_middleware.dart +++ b/lib/redux/auth/auth_middleware.dart @@ -44,33 +44,18 @@ List> createStoreAuthMiddleware([ ]; } -void _saveAuthLocal( - {String email = '', String url = '', String secret = ''}) async { +void _saveAuthLocal({String email = '', String url = ''}) async { final SharedPreferences prefs = await SharedPreferences.getInstance(); - prefs.setString(kSharedPrefEmail, email ?? ''); + prefs.setString(kSharedPrefEmail, email); prefs.setString(kSharedPrefUrl, formatApiUrl(url)); } -void _loadAuthLocal(Store store) async { - final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String email = kReleaseMode - ? (prefs.getString(kSharedPrefEmail) ?? '') - : Config.TEST_EMAIL; - final String url = formatApiUrl(prefs.getString(kSharedPrefUrl) ?? ''); - - if (email.isNotEmpty) { - store.dispatch(UserLoginLoaded(email, url)); - } -} - Middleware _createUserLogout() { return (Store store, dynamic dynamicAction, NextDispatcher next) { final action = dynamicAction as UserLogout; next(action); - _loadAuthLocal(store); - Navigator.of(action.context).pushNamedAndRemoveUntil( LoginScreen.route, (Route route) => false); @@ -93,7 +78,6 @@ Middleware _createLoginRequest(AuthRepository repository) { .then((data) { _saveAuthLocal( email: action.email, - secret: action.secret, url: action.url, ); store.dispatch( @@ -131,7 +115,7 @@ Middleware _createSignUpRequest(AuthRepository repository) { password: action.password, ) .then((data) { - _saveAuthLocal(email: action.email, secret: '', url: ''); + _saveAuthLocal(email: action.email, url: kAppProductionUrl); store.dispatch( LoadAccountSuccess(completer: action.completer, loginResponse: data)); @@ -162,7 +146,6 @@ Middleware _createOAuthLoginRequest(AuthRepository repository) { .then((data) { _saveAuthLocal( email: action.email, - secret: action.secret, url: action.url, ); @@ -191,7 +174,7 @@ Middleware _createOAuthSignUpRequest(AuthRepository repository) { serverAuthCode: action.serverAuthCode, ) .then((data) { - _saveAuthLocal(email: '', secret: '', url: ''); + _saveAuthLocal(url: kAppProductionUrl); store.dispatch( LoadAccountSuccess(completer: action.completer, loginResponse: data)); @@ -212,14 +195,10 @@ Middleware _createRefreshRequest(AuthRepository repository) { NextDispatcher next) async { final action = dynamicAction as RefreshData; - _loadAuthLocal(store); - - String url; - String token; - final SharedPreferences prefs = await SharedPreferences.getInstance(); - url = formatApiUrl(prefs.getString(kSharedPrefUrl) ?? Config.TEST_URL); - token = prefs.getString(kSharedPrefToken); + final url = + formatApiUrl(prefs.getString(kSharedPrefUrl) ?? Config.TEST_URL); + final token = prefs.getString(kSharedPrefToken); repository.refresh(url: url, token: token).then((data) { store.dispatch(LoadAccountSuccess( diff --git a/lib/redux/auth/auth_reducer.dart b/lib/redux/auth/auth_reducer.dart index 7ad373b2f..c87d69169 100644 --- a/lib/redux/auth/auth_reducer.dart +++ b/lib/redux/auth/auth_reducer.dart @@ -5,7 +5,6 @@ import 'package:invoiceninja_flutter/redux/auth/auth_actions.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_state.dart'; Reducer authReducer = combineReducers([ - TypedReducer(userLoginLoadedReducer), TypedReducer(userLoginRequestReducer), TypedReducer(oauthLoginRequestReducer), TypedReducer(oauthSignUpRequestReducer), @@ -21,13 +20,6 @@ AuthState userSignUpRequestReducer( ..secret = ''); } -AuthState userLoginLoadedReducer(AuthState authState, UserLoginLoaded action) { - return authState.rebuild((b) => b - ..isInitialized = true - ..url = formatApiUrl(action.url) - ..email = action.email ?? ''); -} - AuthState userLoginRequestReducer( AuthState authState, UserLoginRequest action) { return authState.rebuild((b) => b