From ee3632c83cd7e7c7574251799e562e1aff75a025 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 2 Aug 2020 14:51:21 +0300 Subject: [PATCH] Update filter on view entity if type is the same --- lib/redux/ui/ui_reducer.dart | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/lib/redux/ui/ui_reducer.dart b/lib/redux/ui/ui_reducer.dart index f2a57e859..e796355f1 100644 --- a/lib/redux/ui/ui_reducer.dart +++ b/lib/redux/ui/ui_reducer.dart @@ -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 filterReducer = combineReducers([ TypedReducer((filter, action) { return action.filter;