diff --git a/lib/redux/app/app_state.dart b/lib/redux/app/app_state.dart index 214c4893f..6dbf5f00d 100644 --- a/lib/redux/app/app_state.dart +++ b/lib/redux/app/app_state.dart @@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/data/models/account_model.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_state.dart'; +import 'package:invoiceninja_flutter/redux/client/client_reducer.dart'; import 'package:invoiceninja_flutter/redux/client/client_selectors.dart'; import 'package:invoiceninja_flutter/redux/client/client_state.dart'; import 'package:invoiceninja_flutter/redux/company/company_state.dart'; @@ -400,7 +401,8 @@ abstract class AppState implements Built { final entityUIState = getUIState(type); return SelectionState( - selectedId: entityUIState.selectedId, + selectedId: + entityUIState.forceSelected == true ? entityUIState.selectedId : null, filterEntityId: uiState.filterEntityId, filterEntityType: uiState.filterEntityType, ); @@ -830,7 +832,8 @@ abstract class AppState implements Built { //return 'FREQ: ${recurringInvoiceUIState.editing.frequencyId}'; //return '## Logs: ${company.systemLogs}'; - return '\n\nURL: ${authState.url}' + return '\n\nForce: ${clientUIState.forceSelected}' + '\n\nURL: ${authState.url}' '\nRoute: ${uiState.currentRoute}' '\nPrevious: ${uiState.previousRoute}' '\nPreview: ${uiState.previewStack}' @@ -852,8 +855,11 @@ class Credentials { } class SelectionState { - const SelectionState( - {this.selectedId, this.filterEntityId, this.filterEntityType}); + const SelectionState({ + this.selectedId, + this.filterEntityId, + this.filterEntityType, + }); final String selectedId; final String filterEntityId; diff --git a/lib/redux/client/client_reducer.dart b/lib/redux/client/client_reducer.dart index 20c95bb7b..4d9c8df2e 100644 --- a/lib/redux/client/client_reducer.dart +++ b/lib/redux/client/client_reducer.dart @@ -8,6 +8,7 @@ import 'package:invoiceninja_flutter/redux/client/client_state.dart'; import 'package:invoiceninja_flutter/redux/company/company_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/entity_ui_state.dart'; import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; +import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:redux/redux.dart'; EntityUIState clientUIReducer(ClientUIState state, dynamic action) { @@ -17,11 +18,22 @@ EntityUIState clientUIReducer(ClientUIState state, dynamic action) { ..editingContact .replace(editingContactReducer(state.editingContact, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..saveCompleter = saveCompleterReducer(state.saveCompleter, action) ..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/company_gateway/company_gateway_reducer.dart b/lib/redux/company_gateway/company_gateway_reducer.dart index d6c6d8d6d..789d1ce75 100644 --- a/lib/redux/company_gateway/company_gateway_reducer.dart +++ b/lib/redux/company_gateway/company_gateway_reducer.dart @@ -14,9 +14,25 @@ EntityUIState companyGatewayUIReducer( return state.rebuild((b) => b ..listUIState.replace(companyGatewayListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer( + (completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.companyGateway diff --git a/lib/redux/credit/credit_reducer.dart b/lib/redux/credit/credit_reducer.dart index 0a8e6b682..91ffc13ef 100644 --- a/lib/redux/credit/credit_reducer.dart +++ b/lib/redux/credit/credit_reducer.dart @@ -15,11 +15,22 @@ EntityUIState creditUIReducer(CreditUIState state, dynamic action) { ..editing.replace(editingReducer(state.editing, action)) ..editingItemIndex = editingItemReducer(state.editingItemIndex, action) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..historyActivityId = historyActivityIdReducer(state.historyActivityId, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/design/design_reducer.dart b/lib/redux/design/design_reducer.dart index 15e43a67d..101e69f16 100644 --- a/lib/redux/design/design_reducer.dart +++ b/lib/redux/design/design_reducer.dart @@ -12,9 +12,20 @@ EntityUIState designUIReducer(DesignUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(designListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.design ? action.entityId : selectedId), diff --git a/lib/redux/document/document_reducer.dart b/lib/redux/document/document_reducer.dart index 8555ca116..d317508f3 100644 --- a/lib/redux/document/document_reducer.dart +++ b/lib/redux/document/document_reducer.dart @@ -12,9 +12,20 @@ EntityUIState documentUIReducer(DocumentUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(documentListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.document ? action.entityId : selectedId), diff --git a/lib/redux/expense/expense_reducer.dart b/lib/redux/expense/expense_reducer.dart index 2a85bb903..9b3170d19 100644 --- a/lib/redux/expense/expense_reducer.dart +++ b/lib/redux/expense/expense_reducer.dart @@ -13,9 +13,20 @@ EntityUIState expenseUIReducer(ExpenseUIState state, dynamic action) { ..listUIState.replace(expenseListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/expense_category/expense_category_reducer.dart b/lib/redux/expense_category/expense_category_reducer.dart index 112c9edae..ce8d3e175 100644 --- a/lib/redux/expense_category/expense_category_reducer.dart +++ b/lib/redux/expense_category/expense_category_reducer.dart @@ -14,9 +14,25 @@ EntityUIState expenseCategoryUIReducer( return state.rebuild((b) => b ..listUIState.replace(expenseCategoryListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer( + (completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.expenseCategory diff --git a/lib/redux/group/group_reducer.dart b/lib/redux/group/group_reducer.dart index a386894fa..66549f943 100644 --- a/lib/redux/group/group_reducer.dart +++ b/lib/redux/group/group_reducer.dart @@ -13,9 +13,18 @@ EntityUIState groupUIReducer(GroupUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(groupListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ 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 e903deede..5ead9269b 100644 --- a/lib/redux/invoice/invoice_reducer.dart +++ b/lib/redux/invoice/invoice_reducer.dart @@ -16,11 +16,22 @@ EntityUIState invoiceUIReducer(InvoiceUIState state, dynamic action) { ..editing.replace(editingReducer(state.editing, action)) ..editingItemIndex = editingItemIndexReducer(state.editingItemIndex, action) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..historyActivityId = historyActivityIdReducer(state.historyActivityId, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/payment/payment_reducer.dart b/lib/redux/payment/payment_reducer.dart index 5e7ed131d..a107e16e2 100644 --- a/lib/redux/payment/payment_reducer.dart +++ b/lib/redux/payment/payment_reducer.dart @@ -13,9 +13,20 @@ EntityUIState paymentUIReducer(PaymentUIState state, dynamic action) { ..listUIState.replace(paymentListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/payment_term/payment_term_reducer.dart b/lib/redux/payment_term/payment_term_reducer.dart index 32ad61a43..29a450d08 100644 --- a/lib/redux/payment_term/payment_term_reducer.dart +++ b/lib/redux/payment_term/payment_term_reducer.dart @@ -13,9 +13,20 @@ EntityUIState paymentTermUIReducer(PaymentTermUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(paymentTermListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.paymentTerm diff --git a/lib/redux/product/product_reducer.dart b/lib/redux/product/product_reducer.dart index c19ce5870..4141e8f8f 100644 --- a/lib/redux/product/product_reducer.dart +++ b/lib/redux/product/product_reducer.dart @@ -14,9 +14,20 @@ EntityUIState productUIReducer(ProductUIState state, dynamic action) { ..listUIState.replace(productListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) ..tabIndex = tabIndexReducer(state.tabIndex, action) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/project/project_reducer.dart b/lib/redux/project/project_reducer.dart index 5184b2041..518c39d2f 100644 --- a/lib/redux/project/project_reducer.dart +++ b/lib/redux/project/project_reducer.dart @@ -15,11 +15,22 @@ EntityUIState projectUIReducer(ProjectUIState state, dynamic action) { ..listUIState.replace(projectListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..saveCompleter = saveCompleterReducer(state.saveCompleter, action) ..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/quote/quote_reducer.dart b/lib/redux/quote/quote_reducer.dart index e40ab2d0f..b6bd7cb1c 100644 --- a/lib/redux/quote/quote_reducer.dart +++ b/lib/redux/quote/quote_reducer.dart @@ -16,11 +16,22 @@ EntityUIState quoteUIReducer(QuoteUIState state, dynamic action) { ..editing.replace(editingReducer(state.editing, action)) ..editingItemIndex = editingItemReducer(state.editingItemIndex, action) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..historyActivityId = historyActivityIdReducer(state.historyActivityId, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/recurring_invoice/recurring_invoice_reducer.dart b/lib/redux/recurring_invoice/recurring_invoice_reducer.dart index cea9c9989..5b8dc1e42 100644 --- a/lib/redux/recurring_invoice/recurring_invoice_reducer.dart +++ b/lib/redux/recurring_invoice/recurring_invoice_reducer.dart @@ -17,11 +17,27 @@ EntityUIState recurringInvoiceUIReducer( ..editing.replace(editingReducer(state.editing, action)) ..editingItemIndex = editingItemIndexReducer(state.editingItemIndex, action) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..historyActivityId = historyActivityIdReducer(state.historyActivityId, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer( + (completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/subscription/subscription_reducer.dart b/lib/redux/subscription/subscription_reducer.dart index acefa2cc3..2cf788b83 100644 --- a/lib/redux/subscription/subscription_reducer.dart +++ b/lib/redux/subscription/subscription_reducer.dart @@ -14,9 +14,24 @@ EntityUIState subscriptionUIReducer(SubscriptionUIState state, dynamic action) { ..listUIState.replace(subscriptionListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), + TypedReducer( + (completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/task/task_reducer.dart b/lib/redux/task/task_reducer.dart index f06ec48f6..b2c2c203f 100644 --- a/lib/redux/task/task_reducer.dart +++ b/lib/redux/task/task_reducer.dart @@ -14,9 +14,20 @@ EntityUIState taskUIReducer(TaskUIState state, dynamic action) { ..editing.replace(editingReducer(state.editing, action)) ..editingTimeIndex = editingTimeReducer(state.editingTimeIndex, action) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/task_status/task_status_reducer.dart b/lib/redux/task_status/task_status_reducer.dart index fe2c59e20..b56e1d5f5 100644 --- a/lib/redux/task_status/task_status_reducer.dart +++ b/lib/redux/task_status/task_status_reducer.dart @@ -14,9 +14,20 @@ EntityUIState taskStatusUIReducer(TaskStatusUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(taskStatusListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.taskStatus diff --git a/lib/redux/tax_rate/tax_rate_reducer.dart b/lib/redux/tax_rate/tax_rate_reducer.dart index 8f7c98f92..cdb860822 100644 --- a/lib/redux/tax_rate/tax_rate_reducer.dart +++ b/lib/redux/tax_rate/tax_rate_reducer.dart @@ -12,9 +12,18 @@ EntityUIState taxRateUIReducer(TaxRateUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(taxRateListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.taxRate ? action.entityId : selectedId), diff --git a/lib/redux/token/token_reducer.dart b/lib/redux/token/token_reducer.dart index aaab516b1..23f1f10fd 100644 --- a/lib/redux/token/token_reducer.dart +++ b/lib/redux/token/token_reducer.dart @@ -13,9 +13,20 @@ EntityUIState tokenUIReducer(TokenUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(tokenListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.token ? action.entityId : selectedId), diff --git a/lib/redux/user/user_actions.dart b/lib/redux/user/user_actions.dart index 277c46024..4b2d18ce7 100644 --- a/lib/redux/user/user_actions.dart +++ b/lib/redux/user/user_actions.dart @@ -314,6 +314,18 @@ class FilterUsersByCustom2 implements PersistUI { final String value; } +class FilterUsersByCustom3 implements PersistUI { + FilterUsersByCustom3(this.value); + + final String value; +} + +class FilterUsersByCustom4 implements PersistUI { + FilterUsersByCustom4(this.value); + + final String value; +} + void handleUserAction( BuildContext context, List users, EntityAction action) { if (users.isEmpty) { diff --git a/lib/redux/user/user_reducer.dart b/lib/redux/user/user_reducer.dart index 7ef9bda16..f7c7647aa 100644 --- a/lib/redux/user/user_reducer.dart +++ b/lib/redux/user/user_reducer.dart @@ -14,9 +14,20 @@ EntityUIState userUIReducer(UserUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(userListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.user ? action.entityId : selectedId), diff --git a/lib/redux/vendor/vendor_reducer.dart b/lib/redux/vendor/vendor_reducer.dart index bc4909f25..84d73fc16 100644 --- a/lib/redux/vendor/vendor_reducer.dart +++ b/lib/redux/vendor/vendor_reducer.dart @@ -17,11 +17,22 @@ EntityUIState vendorUIReducer(VendorUIState state, dynamic action) { ..editingContact .replace(editingVendorContactReducer(state.editingContact, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ..saveCompleter = saveCompleterReducer(state.saveCompleter, action) ..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex; diff --git a/lib/redux/webhook/webhook_reducer.dart b/lib/redux/webhook/webhook_reducer.dart index 02dfa56eb..2098c6d68 100644 --- a/lib/redux/webhook/webhook_reducer.dart +++ b/lib/redux/webhook/webhook_reducer.dart @@ -13,9 +13,20 @@ EntityUIState webhookUIReducer(WebhookUIState state, dynamic action) { return state.rebuild((b) => b ..listUIState.replace(webhookListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) - ..selectedId = selectedIdReducer(state.selectedId, action)); + ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action)); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + Reducer selectedIdReducer = combineReducers([ TypedReducer((selectedId, action) => action.entityType == EntityType.webhook ? action.entityId : selectedId), diff --git a/stubs/redux/stub/stub_reducer b/stubs/redux/stub/stub_reducer index 2a46b489a..e9e44cb4b 100644 --- a/stubs/redux/stub/stub_reducer +++ b/stubs/redux/stub/stub_reducer @@ -14,10 +14,22 @@ EntityUIState stubUIReducer(StubUIState state, dynamic action) { ..listUIState.replace(stubListReducer(state.listUIState, action)) ..editing.replace(editingReducer(state.editing, action)) ..selectedId = selectedIdReducer(state.selectedId, action) + ..forceSelected = forceSelectedReducer(state.forceSelected, action) ..tabIndex = tabIndexReducer(state.tabIndex, action) ); } +final forceSelectedReducer = combineReducers([ + TypedReducer((completer, action) => true), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), + TypedReducer((completer, action) => false), +]); + + final tabIndexReducer = combineReducers([ TypedReducer((completer, action) { return action.tabIndex;