Update filter on view entity if type is the same

This commit is contained in:
Hillel Coren 2020-08-02 14:51:21 +03:00
parent 0d4f2a0eff
commit ee3632c83c
1 changed files with 45 additions and 0 deletions

View File

@ -4,15 +4,25 @@ import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/client/client_reducer.dart';
import 'package:invoiceninja_flutter/redux/company/company_actions.dart';
import 'package:invoiceninja_flutter/redux/company/company_state.dart';
import 'package:invoiceninja_flutter/redux/company_gateway/company_gateway_actions.dart';
import 'package:invoiceninja_flutter/redux/credit/credit_actions.dart';
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_reducer.dart';
import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart';
import 'package:invoiceninja_flutter/redux/group/group_actions.dart';
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
import 'package:invoiceninja_flutter/redux/payment/payment_actions.dart';
import 'package:invoiceninja_flutter/redux/project/project_actions.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
import 'package:invoiceninja_flutter/redux/reports/reports_reducer.dart';
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
import 'package:invoiceninja_flutter/redux/ui/ui_state.dart';
import 'package:invoiceninja_flutter/redux/product/product_reducer.dart';
import 'package:invoiceninja_flutter/redux/invoice/invoice_reducer.dart';
import 'package:invoiceninja_flutter/redux/user/user_actions.dart';
import 'package:invoiceninja_flutter/redux/vendor/vendor_actions.dart';
import 'package:redux/redux.dart';
import 'package:invoiceninja_flutter/redux/document/document_reducer.dart';
import 'package:invoiceninja_flutter/redux/expense/expense_reducer.dart';
@ -51,6 +61,8 @@ UIState uiReducer(UIState state, dynamic action) {
return state.rebuild((b) => b
..filter = filterReducer(state.filter, action)
..filterClearedAt = filterClearedAtReducer(state.filterClearedAt, action)
..filterEntityId = filterEntityIdReducer(
state.filterEntityId, state.filterEntityType, action)
..selectedCompanyIndex =
selectedCompanyIndexReducer(state.selectedCompanyIndex, action)
..previousRoute = state.currentRoute == currentRoute
@ -88,6 +100,39 @@ UIState uiReducer(UIState state, dynamic action) {
.replace(settingsUIReducer(state.settingsUIState, action)));
}
String filterEntityIdReducer(
String entityId, EntityType entityType, dynamic action) {
if (action is ViewClient && entityType == EntityType.client) {
return action.clientId;
} else if (action is ViewInvoice && entityType == EntityType.invoice) {
return action.invoiceId;
} else if (action is ViewPayment && entityType == EntityType.payment) {
return action.paymentId;
} else if (action is ViewQuote && entityType == EntityType.quote) {
return action.quoteId;
} else if (action is ViewCredit && entityType == EntityType.credit) {
return action.creditId;
} else if (action is ViewProject && entityType == EntityType.project) {
return action.projectId;
} else if (action is ViewTask && entityType == EntityType.task) {
return action.taskId;
} else if (action is ViewVendor && entityType == EntityType.vendor) {
return action.vendorId;
} else if (action is ViewExpense && entityType == EntityType.expense) {
return action.expenseId;
} else if (action is ViewGroup && entityType == EntityType.group) {
return action.groupId;
} else if (action is ViewCompanyGateway &&
entityType == EntityType.companyGateway) {
return action.companyGatewayId;
// TODO add to starter
} else if (action is ViewUser && entityType == EntityType.user) {
return action.userId;
}
return entityId;
}
Reducer<String> filterReducer = combineReducers([
TypedReducer<String, FilterCompany>((filter, action) {
return action.filter;