Clear filter on view list

This commit is contained in:
Hillel Coren 2021-04-19 21:35:53 +03:00
parent ec68355aa1
commit 898ddf15f2
43 changed files with 182 additions and 0 deletions

View File

@ -133,8 +133,16 @@ final clientListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromClientMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearClientMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewClientList>(_viewClientList),
]);
ListUIState _viewClientList(
ListUIState clientListState, ViewClientList action) {
return clientListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterClientsByCustom1(
ListUIState clientListState, FilterClientsByCustom1 action) {
if (clientListState.custom1Filters.contains(action.value)) {

View File

@ -167,8 +167,16 @@ final creditListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromCreditMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearCreditMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewCreditList>(_viewCreditList),
]);
ListUIState _viewCreditList(
ListUIState creditListState, ViewCreditList action) {
return creditListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterCreditsByCustom1(
ListUIState creditListState, FilterCreditsByCustom1 action) {
if (creditListState.custom1Filters.contains(action.value)) {

View File

@ -65,8 +65,16 @@ final designListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromDesignMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearDesignMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewDesignList>(_viewDesignList),
]);
ListUIState _viewDesignList(
ListUIState designListState, ViewDesignList action) {
return designListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterDesignsByCustom1(
ListUIState designListState, FilterDesignsByCustom1 action) {
if (designListState.custom1Filters.contains(action.value)) {

View File

@ -54,8 +54,16 @@ final documentListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromDocumentMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearDocumentMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewDocumentList>(_viewDocumentList),
]);
ListUIState _viewDocumentList(
ListUIState documentListState, ViewDocumentList action) {
return documentListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterDocumentsByCustom1(
ListUIState documentListState, FilterDocumentsByCustom1 action) {
if (documentListState.custom1Filters.contains(action.value)) {

View File

@ -77,8 +77,16 @@ final expenseListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromExpenseMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearExpenseMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewExpenseList>(_viewExpenseList),
]);
ListUIState _viewExpenseList(
ListUIState expenseListState, ViewExpenseList action) {
return expenseListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterExpensesByCustom1(
ListUIState expenseListState, FilterExpensesByCustom1 action) {
if (expenseListState.custom1Filters.contains(action.value)) {

View File

@ -74,8 +74,15 @@ final groupListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromGroupMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearGroupMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewGroupList>(_viewGroupList),
]);
ListUIState _viewGroupList(ListUIState groupListState, ViewGroupList action) {
return groupListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterGroupsByCustom1(
ListUIState groupListState, FilterGroupsByCustom1 action) {
if (groupListState.custom1Filters.contains(action.value)) {

View File

@ -173,8 +173,16 @@ final invoiceListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromInvoiceMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearInvoiceMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewInvoiceList>(_viewInvoiceList),
]);
ListUIState _viewInvoiceList(
ListUIState invoiceListState, ViewInvoiceList action) {
return invoiceListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterInvoicesByCustom1(
ListUIState invoiceListState, FilterInvoicesByCustom1 action) {
if (invoiceListState.custom1Filters.contains(action.value)) {

View File

@ -85,8 +85,16 @@ final paymentListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromPaymentMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearPaymentMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewPaymentList>(_viewPaymentList),
]);
ListUIState _viewPaymentList(
ListUIState paymentListState, ViewPaymentList action) {
return paymentListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterPaymentsByCustom1(
ListUIState paymentListState, FilterPaymentsByCustom1 action) {
if (paymentListState.custom1Filters.contains(action.value)) {

View File

@ -75,8 +75,16 @@ final paymentTermListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromPaymentTermMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearPaymentTermMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewPaymentTermList>(_viewPaymentTermList),
]);
ListUIState _viewPaymentTermList(
ListUIState paymentTermListState, ViewPaymentTermList action) {
return paymentTermListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterPaymentTermsByCustom1(
ListUIState paymentTermListState, FilterPaymentTermsByCustom1 action) {
if (paymentTermListState.custom1Filters.contains(action.value)) {

View File

@ -86,8 +86,16 @@ final productListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromProductMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearProductMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewProductList>(_viewClientList),
]);
ListUIState _viewClientList(
ListUIState productListState, ViewProductList action) {
return productListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterProductsByState(
ListUIState productListState, FilterProductsByState action) {
if (productListState.stateFilters.contains(action.state)) {

View File

@ -98,8 +98,16 @@ final projectListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromProjectMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearProjectMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewProjectList>(_viewProjectList),
]);
ListUIState _viewProjectList(
ListUIState projectListState, ViewProjectList action) {
return projectListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterProjectsByCustom1(
ListUIState projectListState, FilterProjectsByCustom1 action) {
if (projectListState.custom1Filters.contains(action.value)) {

View File

@ -167,8 +167,15 @@ final quoteListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromQuoteMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearQuoteMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewQuoteList>(_viewQuoteList),
]);
ListUIState _viewQuoteList(ListUIState quoteListState, ViewQuoteList action) {
return quoteListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterQuotesByCustom1(
ListUIState quoteListState, FilterQuotesByCustom1 action) {
if (quoteListState.custom1Filters.contains(action.value)) {

View File

@ -97,8 +97,15 @@ final taskListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromTaskMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearTaskMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewTaskList>(_viewTaskList),
]);
ListUIState _viewTaskList(ListUIState taskListState, ViewTaskList action) {
return taskListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterTasksByCustom1(
ListUIState taskListState, FilterTasksByCustom1 action) {
if (taskListState.custom1Filters.contains(action.value)) {

View File

@ -81,8 +81,16 @@ final taskStatusListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromTaskStatusMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearTaskStatusMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewTaskStatusList>(_viewTaskStatusList),
]);
ListUIState _viewTaskStatusList(
ListUIState taskStatusListState, ViewTaskStatusList action) {
return taskStatusListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterTaskStatusesByCustom1(
ListUIState taskStatusListState, FilterTaskStatusesByCustom1 action) {
if (taskStatusListState.custom1Filters.contains(action.value)) {

View File

@ -65,8 +65,16 @@ final taxRateListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromTaxRateMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearTaxRateMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewTaxRateList>(_viewTaxRateList),
]);
ListUIState _viewTaxRateList(
ListUIState taxRateListState, ViewTaxRateList action) {
return taxRateListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterTaxRatesByCustom1(
ListUIState taxRateListState, FilterTaxRatesByCustom1 action) {
if (taxRateListState.custom1Filters.contains(action.value)) {

View File

@ -72,8 +72,15 @@ final tokenListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromTokenMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearTokenMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewTokenList>(_viewTokenList),
]);
ListUIState _viewTokenList(ListUIState tokenListState, ViewTokenList action) {
return tokenListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterTokensByCustom1(
ListUIState tokenListState, FilterTokensByCustom1 action) {
if (tokenListState.custom1Filters.contains(action.value)) {

View File

@ -74,8 +74,15 @@ final userListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromUserMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearUserMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewUserList>(_viewUserList),
]);
ListUIState _viewUserList(ListUIState userListState, ViewUserList action) {
return userListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterUsersByCustom1(
ListUIState userListState, FilterUsersByCustom1 action) {
if (userListState.custom1Filters.contains(action.value)) {

View File

@ -126,8 +126,16 @@ final vendorListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromVendorMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearVendorMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewVendorList>(_viewVendorList),
]);
ListUIState _viewVendorList(
ListUIState vendorListState, ViewVendorList action) {
return vendorListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterVendorsByCustom1(
ListUIState vendorListState, FilterVendorsByCustom1 action) {
if (vendorListState.custom1Filters.contains(action.value)) {

View File

@ -72,8 +72,16 @@ final webhookListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromWebhookMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearWebhookMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewWebhookList>(_viewWebhookList),
]);
ListUIState _viewWebhookList(
ListUIState webhookListState, ViewWebhookList action) {
return webhookListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterWebhooksByCustom1(
ListUIState webhookListState, FilterWebhooksByCustom1 action) {
if (webhookListState.custom1Filters.contains(action.value)) {

View File

@ -35,6 +35,7 @@ class ClientScreen extends StatelessWidget {
entityType: EntityType.client,
onHamburgerLongPress: () => store.dispatch(StartClientMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.clientListState.filterClearedAt}__'),
entityType: EntityType.client,
entityIds: viewModel.clientList,
filter: state.clientListState.filter,

View File

@ -35,6 +35,7 @@ class CreditScreen extends StatelessWidget {
entityType: EntityType.credit,
onHamburgerLongPress: () => store.dispatch(StartCreditMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.creditListState.filterClearedAt}__'),
entityType: EntityType.credit,
entityIds: viewModel.creditList,
filter: state.creditListState.filter,

View File

@ -34,6 +34,7 @@ class DesignScreen extends StatelessWidget {
onHamburgerLongPress: () => store.dispatch(StartDesignMultiselect()),
onCancelSettingsSection: kSettingsInvoiceDesign,
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.designListState.filterClearedAt}__'),
entityType: EntityType.design,
entityIds: viewModel.designList,
filter: state.designListState.filter,

View File

@ -33,6 +33,7 @@ class DocumentScreen extends StatelessWidget {
entityType: EntityType.document,
onHamburgerLongPress: () => store.dispatch(StartDocumentMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.documentListState.filterClearedAt}__'),
entityType: EntityType.document,
entityIds: viewModel.documentList,
filter: state.documentListState.filter,

View File

@ -36,6 +36,7 @@ class ExpenseScreen extends StatelessWidget {
entityType: EntityType.expense,
onHamburgerLongPress: () => store.dispatch(StartExpenseMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.expenseListState.filterClearedAt}__'),
entityType: EntityType.expense,
entityIds: viewModel.expenseList,
filter: state.expenseListState.filter,

View File

@ -37,6 +37,8 @@ class ExpenseCategoryScreen extends StatelessWidget {
store.dispatch(StartExpenseCategoryMultiselect()),
onCancelSettingsSection: kSettingsExpenses,
appBarTitle: ListFilter(
key: ValueKey(
'__filter_${state.expenseCategoryListState.filterClearedAt}__'),
entityType: EntityType.expenseCategory,
entityIds: viewModel.expenseCategoryList,
filter: state.expenseCategoryListState.filter,

View File

@ -34,6 +34,7 @@ class GroupSettingsScreen extends StatelessWidget {
entityType: EntityType.group,
onHamburgerLongPress: () => store.dispatch(StartGroupMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.groupListState.filterClearedAt}__'),
entityType: EntityType.group,
entityIds: viewModel.groupList,
filter: state.groupListState.filter,

View File

@ -36,6 +36,7 @@ class InvoiceScreen extends StatelessWidget {
entityType: EntityType.invoice,
onHamburgerLongPress: () => store.dispatch(StartInvoiceMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.invoiceListState.filterClearedAt}__'),
entityType: EntityType.invoice,
entityIds: viewModel.invoiceList,
filter: state.invoiceListState.filter,

View File

@ -32,6 +32,7 @@ class PaymentScreen extends StatelessWidget {
entityType: EntityType.payment,
onHamburgerLongPress: () => store.dispatch(StartPaymentMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.paymentListState.filterClearedAt}__'),
entityType: EntityType.payment,
entityIds: viewModel.paymentList,
filter: state.paymentListState.filter,

View File

@ -36,6 +36,8 @@ class PaymentTermScreen extends StatelessWidget {
onCancelSettingsSection: kSettingsCompanyDetails,
onCancelSettingsIndex: 3,
appBarTitle: ListFilter(
key: ValueKey(
'__filter_${state.paymentTermListState.filterClearedAt}__'),
entityType: EntityType.paymentTerm,
entityIds: viewModel.paymentTermList,
filter: state.paymentTermListState.filter,

View File

@ -34,6 +34,7 @@ class ProductScreen extends StatelessWidget {
entityType: EntityType.product,
onHamburgerLongPress: () => store.dispatch(StartProductMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.productListState.filterClearedAt}__'),
entityType: EntityType.product,
entityIds: viewModel.productList,
filter: state.productListState.filter,

View File

@ -34,6 +34,7 @@ class ProjectScreen extends StatelessWidget {
entityType: EntityType.project,
onHamburgerLongPress: () => store.dispatch(StartProjectMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.projectListState.filterClearedAt}__'),
entityType: EntityType.project,
entityIds: viewModel.projectList,
filter: state.projectListState.filter,

View File

@ -36,6 +36,7 @@ class QuoteScreen extends StatelessWidget {
entityType: EntityType.quote,
onHamburgerLongPress: () => store.dispatch(StartQuoteMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.quoteListState.filterClearedAt}__'),
entityType: EntityType.quote,
entityIds: viewModel.quoteList,
filter: state.quoteListState.filter,

View File

@ -37,6 +37,8 @@ class RecurringInvoiceScreen extends StatelessWidget {
onHamburgerLongPress: () =>
store.dispatch(StartRecurringInvoiceMultiselect()),
appBarTitle: ListFilter(
key: ValueKey(
'__filter_${state.recurringInvoiceListState.filterClearedAt}__'),
entityType: EntityType.recurringInvoice,
entityIds: viewModel.recurringInvoiceList,
filter: state.recurringInvoiceListState.filter,

View File

@ -38,6 +38,7 @@ class SubscriptionScreen extends StatelessWidget {
onHamburgerLongPress: () =>
store.dispatch(StartSubscriptionMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.subscriptionListState.filterClearedAt}__'),
entityType: EntityType.subscription,
entityIds: viewModel.subscriptionList,
filter: state.subscriptionListState.filter,

View File

@ -41,6 +41,7 @@ class TaskScreen extends StatelessWidget {
entityType: EntityType.task,
onHamburgerLongPress: () => store.dispatch(StartTaskMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.taskListState.filterClearedAt}__'),
entityType: EntityType.task,
entityIds: viewModel.taskList,
filter: state.taskListState.filter,

View File

@ -36,6 +36,8 @@ class TaskStatusScreen extends StatelessWidget {
onHamburgerLongPress: () => store.dispatch(StartTaskStatusMultiselect()),
onCancelSettingsSection: kSettingsTasks,
appBarTitle: ListFilter(
key:
ValueKey('__filter_${state.taskStatusListState.filterClearedAt}__'),
entityType: EntityType.taskStatus,
entityIds: viewModel.taskStatusList,
filter: state.taskStatusListState.filter,

View File

@ -33,6 +33,7 @@ class TaxRateSettingsScreen extends StatelessWidget {
onHamburgerLongPress: () => store.dispatch(StartTaxRateMultiselect()),
onCancelSettingsSection: kSettingsTaxSettings,
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.taxRateListState.filterClearedAt}__'),
entityType: EntityType.taxRate,
entityIds: viewModel.taxRateList,
filter: state.taxRateListState.filter,

View File

@ -37,6 +37,7 @@ class TokenScreen extends StatelessWidget {
onHamburgerLongPress: () => store.dispatch(StartTokenMultiselect()),
onCancelSettingsSection: kSettingsAccountManagement,
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.tokenListState.filterClearedAt}__'),
entityType: EntityType.token,
entityIds: viewModel.tokenList,
filter: state.tokenListState.filter,

View File

@ -34,6 +34,7 @@ class UserScreen extends StatelessWidget {
entityType: EntityType.user,
onHamburgerLongPress: () => store.dispatch(StartUserMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.userListState.filterClearedAt}__'),
entityType: EntityType.user,
entityIds: viewModel.userList,
filter: state.userListState.filter,

View File

@ -34,6 +34,7 @@ class VendorScreen extends StatelessWidget {
entityType: EntityType.vendor,
onHamburgerLongPress: () => store.dispatch(StartVendorMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.vendorListState.filterClearedAt}__'),
entityType: EntityType.vendor,
entityIds: viewModel.vendorList,
filter: state.vendorListState.filter,

View File

@ -36,6 +36,7 @@ class WebhookScreen extends StatelessWidget {
onHamburgerLongPress: () => store.dispatch(StartWebhookMultiselect()),
onCancelSettingsSection: kSettingsAccountManagement,
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.webhookListState.filterClearedAt}__'),
entityType: EntityType.webhook,
entityIds: viewModel.webhookList,
filter: state.webhookListState.filter,

View File

@ -85,8 +85,16 @@ final stubListReducer = combineReducers<ListUIState>([
TypedReducer<ListUIState, RemoveFromStubMultiselect>(
_removeFromListMultiselect),
TypedReducer<ListUIState, ClearStubMultiselect>(_clearListMultiselect),
TypedReducer<ListUIState, ViewStubList>(_viewStubList),
]);
ListUIState _viewStubList(
ListUIState stubListState, ViewStubList action) {
return stubListState.rebuild((b) => b
..filter = null
..filterClearedAt = DateTime.now().millisecondsSinceEpoch);
}
ListUIState _filterStubsByCustom1(
ListUIState stubListState, FilterStubsByCustom1 action) {
if (stubListState.custom1Filters.contains(action.value)) {

View File

@ -36,6 +36,7 @@ class StubScreen extends StatelessWidget {
entityType: EntityType.stub,
onHamburgerLongPress: () => store.dispatch(StartStubMultiselect()),
appBarTitle: ListFilter(
key: ValueKey('__filter_${state.stubListState.filterClearedAt}__'),
entityType: EntityType.stub,
entityIds: viewModel.stubList,
filter: state.stubListState.filter,