diff --git a/lib/ui/dashboard/dashboard_sidebar.dart b/lib/ui/dashboard/dashboard_sidebar.dart index 3de3ee863..386611ec3 100644 --- a/lib/ui/dashboard/dashboard_sidebar.dart +++ b/lib/ui/dashboard/dashboard_sidebar.dart @@ -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(), diff --git a/lib/ui/expense/expense_list_item.dart b/lib/ui/expense/expense_list_item.dart index 87497b6c4..8db51a64b 100644 --- a/lib/ui/expense/expense_list_item.dart +++ b/lib/ui/expense/expense_list_item.dart @@ -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: [ 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, diff --git a/lib/ui/expense/expense_list_vm.dart b/lib/ui/expense/expense_list_vm.dart index 8c74e7f49..a9860f5c8 100644 --- a/lib/ui/expense/expense_list_vm.dart +++ b/lib/ui/expense/expense_list_vm.dart @@ -50,7 +50,7 @@ class ExpenseListBuilder extends StatelessWidget { filter: viewModel.filter, expense: expense, isChecked: listUIState.isSelected(expense.id), - showCheck: listUIState.isInMultiselect(), + showCheckbox: listUIState.isInMultiselect(), ); }); }, diff --git a/lib/ui/invoice/edit/invoice_item_selector.dart b/lib/ui/invoice/edit/invoice_item_selector.dart index b0a572e7b..764a32388 100644 --- a/lib/ui/invoice/edit/invoice_item_selector.dart +++ b/lib/ui/invoice/edit/invoice_item_selector.dart @@ -237,6 +237,7 @@ class _InvoiceItemSelectorState extends State final expense = state.expenseState.map[entityId] ?? ExpenseEntity(); return ExpenseListItem( isDismissible: false, + showSelected: false, onCheckboxChanged: (checked) => _toggleEntity(expense), isChecked: _selected.contains(expense), expense: expense, diff --git a/lib/ui/invoice/invoice_list_item.dart b/lib/ui/invoice/invoice_list_item.dart index 32e28e7ac..db81988aa 100644 --- a/lib/ui/invoice/invoice_list_item.dart +++ b/lib/ui/invoice/invoice_list_item.dart @@ -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: [ 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, diff --git a/lib/ui/invoice/invoice_list_vm.dart b/lib/ui/invoice/invoice_list_vm.dart index ce3452055..a9d9353a1 100644 --- a/lib/ui/invoice/invoice_list_vm.dart +++ b/lib/ui/invoice/invoice_list_vm.dart @@ -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), ); }); diff --git a/lib/ui/payment/payment_list_item.dart b/lib/ui/payment/payment_list_item.dart index 0fbba4056..5f0bfad96 100644 --- a/lib/ui/payment/payment_list_item.dart +++ b/lib/ui/payment/payment_list_item.dart @@ -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: [ 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, diff --git a/lib/ui/payment/payment_list_vm.dart b/lib/ui/payment/payment_list_vm.dart index 3fd3949f5..653ce6fd2 100644 --- a/lib/ui/payment/payment_list_vm.dart +++ b/lib/ui/payment/payment_list_vm.dart @@ -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), ); }); diff --git a/lib/ui/transaction/view/transaction_view.dart b/lib/ui/transaction/view/transaction_view.dart index 4d3fd6c5e..1da7608e7 100644 --- a/lib/ui/transaction/view/transaction_view.dart +++ b/lib/ui/transaction/view/transaction_view.dart @@ -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) {