Fix for showing list items as selected
This commit is contained in:
parent
34389eea27
commit
19a34900bc
|
|
@ -120,6 +120,7 @@ class InvoiceSidebar extends StatelessWidget {
|
|||
itemBuilder: (BuildContext context, int index) {
|
||||
return InvoiceListItem(
|
||||
invoice: upcomingInvoices[index],
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -133,6 +134,7 @@ class InvoiceSidebar extends StatelessWidget {
|
|||
itemBuilder: (BuildContext context, int index) {
|
||||
return InvoiceListItem(
|
||||
invoice: pastDueInvoices[index],
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -150,6 +152,7 @@ class InvoiceSidebar extends StatelessWidget {
|
|||
? SizedBox()
|
||||
: InvoiceListItem(
|
||||
invoice: invoice,
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -184,7 +187,7 @@ class PaymentSidebar extends StatelessWidget {
|
|||
itemBuilder: (BuildContext context, int index) {
|
||||
return PaymentListItem(
|
||||
payment: recentPayments[index],
|
||||
showCheck: false,
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -202,7 +205,7 @@ class PaymentSidebar extends StatelessWidget {
|
|||
? SizedBox()
|
||||
: PaymentListItem(
|
||||
payment: payment,
|
||||
showCheck: false,
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -388,6 +391,7 @@ class ExpenseSidbar extends StatelessWidget {
|
|||
return ExpenseListItem(
|
||||
expense: upcomingExpenses[index],
|
||||
showCheckbox: false,
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -402,7 +406,8 @@ class ExpenseSidbar extends StatelessWidget {
|
|||
itemBuilder: (BuildContext context, int index) {
|
||||
return ExpenseListItem(
|
||||
expense: recentExpenses[index],
|
||||
showCheck: false,
|
||||
showCheckbox: false,
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
@ -420,7 +425,8 @@ class ExpenseSidbar extends StatelessWidget {
|
|||
? SizedBox()
|
||||
: ExpenseListItem(
|
||||
expense: expense,
|
||||
showCheck: false,
|
||||
showCheckbox: false,
|
||||
showSelected: false,
|
||||
);
|
||||
},
|
||||
separatorBuilder: (context, index) => ListDivider(),
|
||||
|
|
|
|||
|
|
@ -25,18 +25,20 @@ class ExpenseListItem extends StatelessWidget {
|
|||
this.filter,
|
||||
this.onTap,
|
||||
this.onCheckboxChanged,
|
||||
this.showCheck = false,
|
||||
this.showCheckbox = false,
|
||||
this.isDismissible = true,
|
||||
this.isChecked = false,
|
||||
this.showSelected = true,
|
||||
});
|
||||
|
||||
final Function(bool) onCheckboxChanged;
|
||||
final GestureTapCallback onTap;
|
||||
final ExpenseEntity expense;
|
||||
final String filter;
|
||||
final bool showCheck;
|
||||
final bool showCheckbox;
|
||||
final bool isDismissible;
|
||||
final bool isChecked;
|
||||
final bool showSelected;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -75,10 +77,10 @@ class ExpenseListItem extends StatelessWidget {
|
|||
}
|
||||
|
||||
return DismissibleEntity(
|
||||
showMultiselect: showCheck,
|
||||
showMultiselect: showSelected,
|
||||
isDismissible: isDismissible,
|
||||
isSelected: isDesktop(context) &&
|
||||
!showCheck &&
|
||||
showSelected &&
|
||||
expense.id ==
|
||||
(uiState.isEditing
|
||||
? expenseUIState.editing.id
|
||||
|
|
@ -105,7 +107,7 @@ class ExpenseListItem extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 16),
|
||||
child: showCheck
|
||||
child: showCheckbox
|
||||
? Padding(
|
||||
padding: const EdgeInsets.only(right: 20),
|
||||
child: IgnorePointer(
|
||||
|
|
@ -188,7 +190,7 @@ class ExpenseListItem extends StatelessWidget {
|
|||
onLongPress: () => onTap != null
|
||||
? null
|
||||
: selectEntity(entity: expense, longPress: true),
|
||||
leading: showCheck
|
||||
leading: showCheckbox
|
||||
? IgnorePointer(
|
||||
child: Checkbox(
|
||||
value: isChecked,
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class ExpenseListBuilder extends StatelessWidget {
|
|||
filter: viewModel.filter,
|
||||
expense: expense,
|
||||
isChecked: listUIState.isSelected(expense.id),
|
||||
showCheck: listUIState.isInMultiselect(),
|
||||
showCheckbox: listUIState.isInMultiselect(),
|
||||
);
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ class _InvoiceItemSelectorState extends State<InvoiceItemSelector>
|
|||
final expense = state.expenseState.map[entityId] ?? ExpenseEntity();
|
||||
return ExpenseListItem(
|
||||
isDismissible: false,
|
||||
showSelected: false,
|
||||
onCheckboxChanged: (checked) => _toggleEntity(expense),
|
||||
isChecked: _selected.contains(expense),
|
||||
expense: expense,
|
||||
|
|
|
|||
|
|
@ -22,16 +22,18 @@ class InvoiceListItem extends StatelessWidget {
|
|||
const InvoiceListItem({
|
||||
@required this.invoice,
|
||||
this.filter,
|
||||
this.showCheck = false,
|
||||
this.isChecked = false,
|
||||
this.onTap,
|
||||
this.isChecked = false,
|
||||
this.showCheckbox = false,
|
||||
this.showSelected = true,
|
||||
});
|
||||
|
||||
final InvoiceEntity invoice;
|
||||
final String filter;
|
||||
final bool showCheck;
|
||||
final bool showCheckbox;
|
||||
final bool isChecked;
|
||||
final Function onTap;
|
||||
final bool showSelected;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -71,12 +73,12 @@ class InvoiceListItem extends StatelessWidget {
|
|||
|
||||
return DismissibleEntity(
|
||||
isSelected: isDesktop(context) &&
|
||||
!showCheck &&
|
||||
showSelected &&
|
||||
invoice.id ==
|
||||
(uiState.isEditing
|
||||
? invoiceUIState.editing.id
|
||||
: invoiceUIState.selectedId),
|
||||
showMultiselect: showCheck,
|
||||
showMultiselect: showSelected,
|
||||
userCompany: state.userCompany,
|
||||
entity: invoice,
|
||||
child: LayoutBuilder(
|
||||
|
|
@ -87,7 +89,7 @@ class InvoiceListItem extends StatelessWidget {
|
|||
? onTap()
|
||||
: selectEntity(
|
||||
entity: invoice,
|
||||
forceView: !showCheck,
|
||||
forceView: !showCheckbox,
|
||||
),
|
||||
onLongPress: () => onTap != null
|
||||
? null
|
||||
|
|
@ -103,7 +105,7 @@ class InvoiceListItem extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 16),
|
||||
child: showCheck
|
||||
child: showCheckbox
|
||||
? IgnorePointer(
|
||||
child: Checkbox(
|
||||
value: isChecked,
|
||||
|
|
@ -188,11 +190,11 @@ class InvoiceListItem extends StatelessWidget {
|
|||
: ListTile(
|
||||
onTap: () => onTap != null
|
||||
? onTap()
|
||||
: selectEntity(entity: invoice, forceView: !showCheck),
|
||||
: selectEntity(entity: invoice, forceView: !showCheckbox),
|
||||
onLongPress: () => onTap != null
|
||||
? null
|
||||
: selectEntity(entity: invoice, longPress: true),
|
||||
leading: showCheck
|
||||
leading: showCheckbox
|
||||
? IgnorePointer(
|
||||
child: Checkbox(
|
||||
value: isChecked,
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class InvoiceListBuilder extends StatelessWidget {
|
|||
return InvoiceListItem(
|
||||
filter: viewModel.filter,
|
||||
invoice: invoice,
|
||||
showCheck: invoiceListState.isInMultiselect(),
|
||||
showCheckbox: invoiceListState.isInMultiselect(),
|
||||
isChecked: invoiceListState.isSelected(invoice.id),
|
||||
);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -22,16 +22,18 @@ class PaymentListItem extends StatelessWidget {
|
|||
const PaymentListItem({
|
||||
@required this.payment,
|
||||
this.filter,
|
||||
this.showCheck = false,
|
||||
this.showCheckbox = false,
|
||||
this.isChecked = false,
|
||||
this.onTap,
|
||||
this.showSelected = true,
|
||||
});
|
||||
|
||||
final PaymentEntity payment;
|
||||
final String filter;
|
||||
final bool showCheck;
|
||||
final bool showCheckbox;
|
||||
final bool isChecked;
|
||||
final Function onTap;
|
||||
final bool showSelected;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -62,12 +64,12 @@ class PaymentListItem extends StatelessWidget {
|
|||
|
||||
return DismissibleEntity(
|
||||
isSelected: isDesktop(context) &&
|
||||
!showCheck &&
|
||||
showSelected &&
|
||||
payment.id ==
|
||||
(uiState.isEditing
|
||||
? paymentUIState.editing.id
|
||||
: paymentUIState.selectedId),
|
||||
showMultiselect: showCheck,
|
||||
showMultiselect: showSelected,
|
||||
userCompany: state.userCompany,
|
||||
entity: payment,
|
||||
child: LayoutBuilder(
|
||||
|
|
@ -76,7 +78,7 @@ class PaymentListItem extends StatelessWidget {
|
|||
? InkWell(
|
||||
onTap: () => onTap != null
|
||||
? onTap()
|
||||
: selectEntity(entity: payment, forceView: !showCheck),
|
||||
: selectEntity(entity: payment, forceView: !showCheckbox),
|
||||
onLongPress: () => onTap != null
|
||||
? null
|
||||
: selectEntity(entity: payment, longPress: true),
|
||||
|
|
@ -91,7 +93,7 @@ class PaymentListItem extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 16),
|
||||
child: showCheck
|
||||
child: showCheckbox
|
||||
? IgnorePointer(
|
||||
child: Checkbox(
|
||||
value: isChecked,
|
||||
|
|
@ -164,11 +166,11 @@ class PaymentListItem extends StatelessWidget {
|
|||
: ListTile(
|
||||
onTap: () => onTap != null
|
||||
? onTap()
|
||||
: selectEntity(entity: payment, forceView: !showCheck),
|
||||
: selectEntity(entity: payment, forceView: !showCheckbox),
|
||||
onLongPress: () => onTap != null
|
||||
? null
|
||||
: selectEntity(entity: payment, longPress: true),
|
||||
leading: showCheck
|
||||
leading: showCheckbox
|
||||
? IgnorePointer(
|
||||
child: Checkbox(
|
||||
value: isChecked,
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class PaymentListBuilder extends StatelessWidget {
|
|||
return PaymentListItem(
|
||||
filter: viewModel.filter,
|
||||
payment: payment,
|
||||
showCheck: paymentListState.isInMultiselect(),
|
||||
showCheckbox: paymentListState.isInMultiselect(),
|
||||
isChecked: paymentListState.isSelected(payment.id),
|
||||
);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -539,7 +539,8 @@ class _MatchDepositsState extends State<_MatchDeposits> {
|
|||
final payment = _payments[index];
|
||||
return PaymentListItem(
|
||||
payment: payment,
|
||||
showCheck: true,
|
||||
showCheckbox: true,
|
||||
showSelected: false,
|
||||
isChecked: (_selectedPayment?.id ?? '') == payment.id,
|
||||
onTap: () => setState(() {
|
||||
if ((_selectedPayment?.id ?? '') == payment.id) {
|
||||
|
|
@ -567,7 +568,8 @@ class _MatchDepositsState extends State<_MatchDeposits> {
|
|||
final invoice = _invoices[index];
|
||||
return InvoiceListItem(
|
||||
invoice: invoice,
|
||||
showCheck: true,
|
||||
showCheckbox: true,
|
||||
showSelected: false,
|
||||
isChecked: _selectedInvoices.contains(invoice),
|
||||
onTap: () => setState(() {
|
||||
if (_selectedInvoices.contains(invoice)) {
|
||||
|
|
@ -1020,7 +1022,8 @@ class _MatchWithdrawalsState extends State<_MatchWithdrawals> {
|
|||
final expense = _expenses[index];
|
||||
return ExpenseListItem(
|
||||
expense: expense,
|
||||
showCheck: true,
|
||||
showCheckbox: true,
|
||||
showSelected: false,
|
||||
isChecked: _selectedExpense?.id == expense.id,
|
||||
onTap: () => setState(() {
|
||||
if (_selectedExpense?.id == expense.id) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue