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, selected: selected,
title: child, title: child,
dense: true, dense: true,
contentPadding: EdgeInsets.symmetric(horizontal: 2), contentPadding: EdgeInsets.symmetric(horizontal: 4),
onTap: () { onTap: () {
onChange(!selected); onChange(!selected);
_theState.notify(); _theState.notify();

View File

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

View File

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

View File

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

View File

@ -36,6 +36,22 @@ class ExpenseScreen extends StatelessWidget {
final userCompany = state.userCompany; final userCompany = state.userCompany;
final localization = AppLocalization.of(context); 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( return ListScaffold(
entityType: EntityType.expense, entityType: EntityType.expense,
onHamburgerLongPress: () => store.dispatch(StartExpenseMultiselect()), onHamburgerLongPress: () => store.dispatch(StartExpenseMultiselect()),
@ -47,6 +63,13 @@ class ExpenseScreen extends StatelessWidget {
onFilterChanged: (value) { onFilterChanged: (value) {
store.dispatch(FilterExpenses(value)); store.dispatch(FilterExpenses(value));
}, },
statuses: statuses,
onSelectedState: (EntityState state, value) {
store.dispatch(FilterExpensesByState(state));
},
onSelectedStatus: (EntityStatus status, value) {
store.dispatch(FilterExpensesByStatus(status));
},
), ),
onCheckboxPressed: () { onCheckboxPressed: () {
if (store.state.expenseListState.isInMultiselect()) { if (store.state.expenseListState.isInMultiselect()) {
@ -86,21 +109,7 @@ class ExpenseScreen extends StatelessWidget {
onSelectedState: (EntityState state, value) { onSelectedState: (EntityState state, value) {
store.dispatch(FilterExpensesByState(state)); store.dispatch(FilterExpensesByState(state));
}, },
statuses: [ statuses: 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,
),
],
onSelectedStatus: (EntityStatus status, value) { onSelectedStatus: (EntityStatus status, value) {
store.dispatch(FilterExpensesByStatus(status)); store.dispatch(FilterExpensesByStatus(status));
}, },

View File

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