Fix filter bug

This commit is contained in:
Hillel Coren 2020-06-17 17:56:52 +03:00
parent 340934ac5f
commit 00cd2705d4
8 changed files with 30 additions and 4 deletions

View File

@ -144,6 +144,12 @@ class DiscardChanges {}
class ClearEntityFilter {} class ClearEntityFilter {}
class ClearEntitySelection {
ClearEntitySelection({this.entityType});
final EntityType entityType;
}
class FilterByEntity implements PersistUI { class FilterByEntity implements PersistUI {
FilterByEntity({this.entityId, this.entityType}); FilterByEntity({this.entityId, this.entityType});
@ -189,10 +195,11 @@ void viewEntitiesByType({
if (filterEntity != null) { if (filterEntity != null) {
if (uiState.filterEntityType != filterEntity.entityType || if (uiState.filterEntityType != filterEntity.entityType ||
uiState.filterEntityId != filterEntity.id) { uiState.filterEntityId != filterEntity.id) {
filterByEntity( store.dispatch(ClearEntitySelection(entityType: entityType));
context: context, store.dispatch(FilterByEntity(
entity: filterEntity, entityId: filterEntity.id,
); entityType: filterEntity.entityType,
));
} }
} else if (uiState.filterEntityType != null) { } else if (uiState.filterEntityType != null) {
store.dispatch(ClearEntityFilter()); store.dispatch(ClearEntityFilter());

View File

@ -51,6 +51,8 @@ final selectedIdReducer = combineReducers<String>([
}), }),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.client ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) => TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.client ? action.entityId : selectedId), action.entityType == EntityType.client ? action.entityId : selectedId),
]); ]);

View File

@ -39,6 +39,10 @@ Reducer<String> selectedIdReducer = combineReducers([
(selectedId, action) => action.credit.id), (selectedId, action) => action.credit.id),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.credit ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.credit ? action.entityId : selectedId),
]); ]);
final editingReducer = combineReducers<InvoiceEntity>([ final editingReducer = combineReducers<InvoiceEntity>([

View File

@ -23,6 +23,8 @@ Reducer<String> selectedIdReducer = combineReducers([
(String selectedId, action) => action.group.id), (String selectedId, action) => action.group.id),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.group ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) => TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.group ? action.entityId : selectedId), action.entityType == EntityType.group ? action.entityId : selectedId),
]); ]);

View File

@ -41,6 +41,8 @@ Reducer<String> selectedIdReducer = combineReducers([
(selectedId, action) => action.invoice.id), (selectedId, action) => action.invoice.id),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.invoice ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) => TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.invoice ? action.entityId : selectedId), action.entityType == EntityType.invoice ? action.entityId : selectedId),
]); ]);

View File

@ -21,6 +21,8 @@ Reducer<String> selectedIdReducer = combineReducers([
(selectedId, action) => action.payment.id), (selectedId, action) => action.payment.id),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.payment ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) => TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.payment ? action.entityId : selectedId), action.entityType == EntityType.payment ? action.entityId : selectedId),
]); ]);

View File

@ -1,5 +1,6 @@
import 'package:built_collection/built_collection.dart'; import 'package:built_collection/built_collection.dart';
import 'package:invoiceninja_flutter/data/models/client_model.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/data/models/invoice_model.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/company/company_actions.dart'; import 'package:invoiceninja_flutter/redux/company/company_actions.dart';
@ -38,6 +39,10 @@ Reducer<String> selectedIdReducer = combineReducers([
TypedReducer<String, ShowEmailQuote>((selectedId, action) => action.quote.id), TypedReducer<String, ShowEmailQuote>((selectedId, action) => action.quote.id),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.quote ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.quote ? action.entityId : selectedId),
]); ]);
final editingReducer = combineReducers<InvoiceEntity>([ final editingReducer = combineReducers<InvoiceEntity>([

View File

@ -21,6 +21,8 @@ Reducer<String> selectedIdReducer = combineReducers([
(String selectedId, action) => action.user.id), (String selectedId, action) => action.user.id),
TypedReducer<String, SelectCompany>((selectedId, action) => ''), TypedReducer<String, SelectCompany>((selectedId, action) => ''),
TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''), TypedReducer<String, ClearEntityFilter>((selectedId, action) => ''),
TypedReducer<String, ClearEntitySelection>((selectedId, action) =>
action.entityType == EntityType.user ? '' : selectedId),
TypedReducer<String, FilterByEntity>((selectedId, action) => TypedReducer<String, FilterByEntity>((selectedId, action) =>
action.entityType == EntityType.user ? action.entityId : selectedId), action.entityType == EntityType.user ? action.entityId : selectedId),
]); ]);