diff --git a/lib/redux/app/app_actions.dart b/lib/redux/app/app_actions.dart index 87194c19c..892acf541 100644 --- a/lib/redux/app/app_actions.dart +++ b/lib/redux/app/app_actions.dart @@ -144,6 +144,12 @@ class DiscardChanges {} class ClearEntityFilter {} +class ClearEntitySelection { + ClearEntitySelection({this.entityType}); + + final EntityType entityType; +} + class FilterByEntity implements PersistUI { FilterByEntity({this.entityId, this.entityType}); @@ -189,10 +195,11 @@ void viewEntitiesByType({ if (filterEntity != null) { if (uiState.filterEntityType != filterEntity.entityType || uiState.filterEntityId != filterEntity.id) { - filterByEntity( - context: context, - entity: filterEntity, - ); + store.dispatch(ClearEntitySelection(entityType: entityType)); + store.dispatch(FilterByEntity( + entityId: filterEntity.id, + entityType: filterEntity.entityType, + )); } } else if (uiState.filterEntityType != null) { store.dispatch(ClearEntityFilter()); diff --git a/lib/redux/client/client_reducer.dart b/lib/redux/client/client_reducer.dart index 3aecf3bdd..fba732e2c 100644 --- a/lib/redux/client/client_reducer.dart +++ b/lib/redux/client/client_reducer.dart @@ -51,6 +51,8 @@ final selectedIdReducer = combineReducers([ }), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.client ? '' : selectedId), TypedReducer((selectedId, action) => action.entityType == EntityType.client ? action.entityId : selectedId), ]); diff --git a/lib/redux/credit/credit_reducer.dart b/lib/redux/credit/credit_reducer.dart index 57c112b57..fce2dec36 100644 --- a/lib/redux/credit/credit_reducer.dart +++ b/lib/redux/credit/credit_reducer.dart @@ -39,6 +39,10 @@ Reducer selectedIdReducer = combineReducers([ (selectedId, action) => action.credit.id), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.credit ? '' : selectedId), + TypedReducer((selectedId, action) => + action.entityType == EntityType.credit ? action.entityId : selectedId), ]); final editingReducer = combineReducers([ diff --git a/lib/redux/group/group_reducer.dart b/lib/redux/group/group_reducer.dart index b1a4a7b2d..a74f1a62a 100644 --- a/lib/redux/group/group_reducer.dart +++ b/lib/redux/group/group_reducer.dart @@ -23,6 +23,8 @@ Reducer selectedIdReducer = combineReducers([ (String selectedId, action) => action.group.id), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.group ? '' : selectedId), TypedReducer((selectedId, action) => action.entityType == EntityType.group ? action.entityId : selectedId), ]); diff --git a/lib/redux/invoice/invoice_reducer.dart b/lib/redux/invoice/invoice_reducer.dart index 5f05d5c08..efa9e3326 100644 --- a/lib/redux/invoice/invoice_reducer.dart +++ b/lib/redux/invoice/invoice_reducer.dart @@ -41,6 +41,8 @@ Reducer selectedIdReducer = combineReducers([ (selectedId, action) => action.invoice.id), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.invoice ? '' : selectedId), TypedReducer((selectedId, action) => action.entityType == EntityType.invoice ? action.entityId : selectedId), ]); diff --git a/lib/redux/payment/payment_reducer.dart b/lib/redux/payment/payment_reducer.dart index b4ccced94..254289fb0 100644 --- a/lib/redux/payment/payment_reducer.dart +++ b/lib/redux/payment/payment_reducer.dart @@ -21,6 +21,8 @@ Reducer selectedIdReducer = combineReducers([ (selectedId, action) => action.payment.id), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.payment ? '' : selectedId), TypedReducer((selectedId, action) => action.entityType == EntityType.payment ? action.entityId : selectedId), ]); diff --git a/lib/redux/quote/quote_reducer.dart b/lib/redux/quote/quote_reducer.dart index a01235adf..271a65095 100644 --- a/lib/redux/quote/quote_reducer.dart +++ b/lib/redux/quote/quote_reducer.dart @@ -1,5 +1,6 @@ import 'package:built_collection/built_collection.dart'; import 'package:invoiceninja_flutter/data/models/client_model.dart'; +import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/invoice_model.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/company/company_actions.dart'; @@ -38,6 +39,10 @@ Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.quote.id), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.quote ? '' : selectedId), + TypedReducer((selectedId, action) => + action.entityType == EntityType.quote ? action.entityId : selectedId), ]); final editingReducer = combineReducers([ diff --git a/lib/redux/user/user_reducer.dart b/lib/redux/user/user_reducer.dart index 6f40a6793..4a03b2722 100644 --- a/lib/redux/user/user_reducer.dart +++ b/lib/redux/user/user_reducer.dart @@ -21,6 +21,8 @@ Reducer selectedIdReducer = combineReducers([ (String selectedId, action) => action.user.id), TypedReducer((selectedId, action) => ''), TypedReducer((selectedId, action) => ''), + TypedReducer((selectedId, action) => + action.entityType == EntityType.user ? '' : selectedId), TypedReducer((selectedId, action) => action.entityType == EntityType.user ? action.entityId : selectedId), ]);