Add desktop state/status filters

This commit is contained in:
Hillel Coren 2022-02-10 21:59:32 +02:00
parent 7ddea4386a
commit cef117088f
6 changed files with 37 additions and 16 deletions

View File

@ -25,7 +25,7 @@ class _SelectRow extends StatelessWidget {
selected: selected,
title: child,
dense: true,
contentPadding: EdgeInsets.symmetric(horizontal: 2),
contentPadding: EdgeInsets.symmetric(horizontal: 4),
onTap: () {
onChange(!selected);
_theState.notify();

View File

@ -46,6 +46,9 @@ class CreditScreen extends StatelessWidget {
onFilterChanged: (value) {
store.dispatch(FilterCredits(value));
},
onSelectedState: (EntityState state, value) {
store.dispatch(FilterCreditsByState(state));
},
),
onCheckboxPressed: () {
if (store.state.creditListState.isInMultiselect()) {

View File

@ -46,6 +46,9 @@ class DesignScreen extends StatelessWidget {
onFilterChanged: (value) {
store.dispatch(FilterDesigns(value));
},
onSelectedState: (EntityState state, value) {
store.dispatch(FilterDesignsByState(state));
},
),
onCheckboxPressed: () {
if (store.state.designListState.isInMultiselect()) {

View File

@ -44,6 +44,9 @@ class DocumentScreen extends StatelessWidget {
onFilterChanged: (value) {
store.dispatch(FilterDocuments(value));
},
onSelectedState: (EntityState state, value) {
store.dispatch(FilterDocumentsByState(state));
},
),
onCheckboxPressed: () {
if (store.state.documentListState.isInMultiselect()) {

View File

@ -36,6 +36,22 @@ class ExpenseScreen extends StatelessWidget {
final userCompany = state.userCompany;
final localization = AppLocalization.of(context);
final statuses = [
ExpenseStatusEntity().rebuild((b) => b
..id = kExpenseStatusLogged
..name = localization.logged),
ExpenseStatusEntity().rebuild(
(b) => b
..id = kExpenseStatusPending
..name = localization.pending,
),
ExpenseStatusEntity().rebuild(
(b) => b
..id = kExpenseStatusInvoiced
..name = localization.invoiced,
),
];
return ListScaffold(
entityType: EntityType.expense,
onHamburgerLongPress: () => store.dispatch(StartExpenseMultiselect()),
@ -47,6 +63,13 @@ class ExpenseScreen extends StatelessWidget {
onFilterChanged: (value) {
store.dispatch(FilterExpenses(value));
},
statuses: statuses,
onSelectedState: (EntityState state, value) {
store.dispatch(FilterExpensesByState(state));
},
onSelectedStatus: (EntityStatus status, value) {
store.dispatch(FilterExpensesByStatus(status));
},
),
onCheckboxPressed: () {
if (store.state.expenseListState.isInMultiselect()) {
@ -86,21 +109,7 @@ class ExpenseScreen extends StatelessWidget {
onSelectedState: (EntityState state, value) {
store.dispatch(FilterExpensesByState(state));
},
statuses: [
ExpenseStatusEntity().rebuild((b) => b
..id = kExpenseStatusLogged
..name = localization.logged),
ExpenseStatusEntity().rebuild(
(b) => b
..id = kExpenseStatusPending
..name = localization.pending,
),
ExpenseStatusEntity().rebuild(
(b) => b
..id = kExpenseStatusInvoiced
..name = localization.invoiced,
),
],
statuses: statuses,
onSelectedStatus: (EntityStatus status, value) {
store.dispatch(FilterExpensesByStatus(status));
},

View File

@ -56,6 +56,9 @@ class ExpenseCategoryScreen extends StatelessWidget {
onFilterChanged: (value) {
store.dispatch(FilterExpenseCategories(value));
},
onSelectedState: (EntityState state, value) {
store.dispatch(FilterExpenseCategoriesByState(state));
},
),
body: ExpenseCategoryListBuilder(),
bottomNavigationBar: AppBottomBar(