diff --git a/lib/redux/client/client_reducer.dart b/lib/redux/client/client_reducer.dart index c7b996bcc..8e8baf9d0 100644 --- a/lib/redux/client/client_reducer.dart +++ b/lib/redux/client/client_reducer.dart @@ -181,7 +181,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState clientListState, ClearClientMultiselect action) { - return clientListState.rebuild((b) => b..selectedIds = ListBuilder()); + return clientListState.rebuild((b) => b..selectedIds = null); } final clientsReducer = combineReducers([ diff --git a/lib/redux/company_gateway/company_gateway_reducer.dart b/lib/redux/company_gateway/company_gateway_reducer.dart index 5a1325dd5..9f902b5c7 100644 --- a/lib/redux/company_gateway/company_gateway_reducer.dart +++ b/lib/redux/company_gateway/company_gateway_reducer.dart @@ -148,7 +148,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState productListState, ClearCompanyGatewayMultiselect action) { - return productListState.rebuild((b) => b..selectedIds = ListBuilder()); + return productListState.rebuild((b) => b..selectedIds = null); } final companyGatewaysReducer = combineReducers([ diff --git a/lib/redux/document/document_reducer.dart b/lib/redux/document/document_reducer.dart index 5dc4a4fe1..56a7de988 100644 --- a/lib/redux/document/document_reducer.dart +++ b/lib/redux/document/document_reducer.dart @@ -130,7 +130,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState documentListState, ClearDocumentMultiselect action) { - return documentListState.rebuild((b) => b..selectedIds = ListBuilder()); + return documentListState.rebuild((b) => b..selectedIds = null); } final documentsReducer = combineReducers([ diff --git a/lib/redux/expense/expense_reducer.dart b/lib/redux/expense/expense_reducer.dart index fdc65292c..296444407 100644 --- a/lib/redux/expense/expense_reducer.dart +++ b/lib/redux/expense/expense_reducer.dart @@ -140,7 +140,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState expenseListState, ClearExpenseMultiselect action) { - return expenseListState.rebuild((b) => b..selectedIds = ListBuilder()); + return expenseListState.rebuild((b) => b..selectedIds = null); } final expensesReducer = combineReducers([ diff --git a/lib/redux/group/group_reducer.dart b/lib/redux/group/group_reducer.dart index 2f8c971f4..3c928d1c0 100644 --- a/lib/redux/group/group_reducer.dart +++ b/lib/redux/group/group_reducer.dart @@ -127,7 +127,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState groupListState, ClearGroupMultiselect action) { - return groupListState.rebuild((b) => b..selectedIds = ListBuilder()); + return groupListState.rebuild((b) => b..selectedIds = null); } final groupsReducer = combineReducers([ diff --git a/lib/redux/invoice/invoice_reducer.dart b/lib/redux/invoice/invoice_reducer.dart index eee37ba4a..a6912a5b1 100644 --- a/lib/redux/invoice/invoice_reducer.dart +++ b/lib/redux/invoice/invoice_reducer.dart @@ -199,7 +199,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState invoiceListState, ClearInvoiceMultiselect action) { - return invoiceListState.rebuild((b) => b..selectedIds = ListBuilder()); + return invoiceListState.rebuild((b) => b..selectedIds = null); } final invoicesReducer = combineReducers([ diff --git a/lib/redux/payment/payment_reducer.dart b/lib/redux/payment/payment_reducer.dart index 5a6fb4489..e6865d50f 100644 --- a/lib/redux/payment/payment_reducer.dart +++ b/lib/redux/payment/payment_reducer.dart @@ -129,7 +129,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState paymentListState, ClearPaymentMultiselect action) { - return paymentListState.rebuild((b) => b..selectedIds = ListBuilder()); + return paymentListState.rebuild((b) => b..selectedIds = null); } final paymentsReducer = combineReducers([ diff --git a/lib/redux/product/product_reducer.dart b/lib/redux/product/product_reducer.dart index 6caacab5c..70161a713 100644 --- a/lib/redux/product/product_reducer.dart +++ b/lib/redux/product/product_reducer.dart @@ -128,7 +128,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState productListState, ClearProductMultiselect action) { - return productListState.rebuild((b) => b..selectedIds = ListBuilder()); + return productListState.rebuild((b) => b..selectedIds = null); } final productsReducer = combineReducers([ diff --git a/lib/redux/project/project_reducer.dart b/lib/redux/project/project_reducer.dart index 0e79c414a..e6bac4619 100644 --- a/lib/redux/project/project_reducer.dart +++ b/lib/redux/project/project_reducer.dart @@ -145,7 +145,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState projectListState, ClearProjectMultiselect action) { - return projectListState.rebuild((b) => b..selectedIds = ListBuilder()); + return projectListState.rebuild((b) => b..selectedIds = null); } final projectsReducer = combineReducers([ diff --git a/lib/redux/quote/quote_reducer.dart b/lib/redux/quote/quote_reducer.dart index 42757aaa0..e26a0eafa 100644 --- a/lib/redux/quote/quote_reducer.dart +++ b/lib/redux/quote/quote_reducer.dart @@ -185,7 +185,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState quoteListState, ClearQuoteMultiselect action) { - return quoteListState.rebuild((b) => b..selectedIds = ListBuilder()); + return quoteListState.rebuild((b) => b..selectedIds = null); } final quotesReducer = combineReducers([ diff --git a/lib/redux/task/task_reducer.dart b/lib/redux/task/task_reducer.dart index 376d07037..e88db2145 100644 --- a/lib/redux/task/task_reducer.dart +++ b/lib/redux/task/task_reducer.dart @@ -158,7 +158,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState taskListState, ClearTaskMultiselect action) { - return taskListState.rebuild((b) => b..selectedIds = ListBuilder()); + return taskListState.rebuild((b) => b..selectedIds = null); } final tasksReducer = combineReducers([ diff --git a/lib/redux/tax_rate/tax_rate_reducer.dart b/lib/redux/tax_rate/tax_rate_reducer.dart index 046655812..3544cda9d 100644 --- a/lib/redux/tax_rate/tax_rate_reducer.dart +++ b/lib/redux/tax_rate/tax_rate_reducer.dart @@ -130,7 +130,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState taxRateListState, ClearTaxRateMultiselect action) { - return taxRateListState.rebuild((b) => b..selectedIds = ListBuilder()); + return taxRateListState.rebuild((b) => b..selectedIds = null); } final taxRatesReducer = combineReducers([ diff --git a/lib/redux/user/user_reducer.dart b/lib/redux/user/user_reducer.dart index 2ee3716d6..476bd832d 100644 --- a/lib/redux/user/user_reducer.dart +++ b/lib/redux/user/user_reducer.dart @@ -126,7 +126,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState productListState, ClearUserMultiselect action) { - return productListState.rebuild((b) => b..selectedIds = ListBuilder()); + return productListState.rebuild((b) => b..selectedIds = null); } final usersReducer = combineReducers([ diff --git a/lib/redux/vendor/vendor_reducer.dart b/lib/redux/vendor/vendor_reducer.dart index 67e20c1f9..d5d637551 100644 --- a/lib/redux/vendor/vendor_reducer.dart +++ b/lib/redux/vendor/vendor_reducer.dart @@ -171,7 +171,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState vendorListState, ClearVendorMultiselect action) { - return vendorListState.rebuild((b) => b..selectedIds = ListBuilder()); + return vendorListState.rebuild((b) => b..selectedIds = null); } final vendorsReducer = combineReducers([ diff --git a/lib/ui/user/user_list_item.dart b/lib/ui/user/user_list_item.dart index de107db89..35222c16d 100644 --- a/lib/ui/user/user_list_item.dart +++ b/lib/ui/user/user_list_item.dart @@ -41,7 +41,7 @@ class UserListItem extends StatelessWidget { final filterMatch = filter != null && filter.isNotEmpty ? user.matchesFilterValue(filter) - : null; + : user.email; final subtitle = filterMatch; return DismissibleEntity( diff --git a/lib/ui/user/view/user_view.dart b/lib/ui/user/view/user_view.dart index a0fb6162a..1e98d12a6 100644 --- a/lib/ui/user/view/user_view.dart +++ b/lib/ui/user/view/user_view.dart @@ -5,10 +5,12 @@ import 'package:invoiceninja_flutter/redux/invoice/invoice_selectors.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_state_title.dart'; +import 'package:invoiceninja_flutter/ui/app/form_card.dart'; import 'package:invoiceninja_flutter/ui/app/lists/app_list_tile.dart'; import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart'; import 'package:invoiceninja_flutter/ui/user/view/user_view_vm.dart'; import 'package:flutter/material.dart'; +import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/icons.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; @@ -55,12 +57,24 @@ class UserView extends StatelessWidget { ), body: ListView( children: [ - AppListTile( - icon: Icons.email, - title: user.email, - copyValue: user.email, - subtitle: localization.email, - onTap: () => launch('mailto:' + user.email), + FormCard( + children: [ + AppListTile( + icon: Icons.email, + title: user.email, + copyValue: user.email, + subtitle: localization.email, + onTap: () => launch('mailto:' + user.email), + ), + if ((user.phone ?? '').isNotEmpty) + AppListTile( + icon: Icons.phone, + title: user.phone, + copyValue: user.phone, + subtitle: localization.phone, + onTap: () => launch('sms:' + cleanPhoneNumber(user.phone)), + ), + ], ), /* TwoValueHeader( diff --git a/stubs/redux/stub/stub_reducer b/stubs/redux/stub/stub_reducer index 4c1d3570c..7f8070312 100644 --- a/stubs/redux/stub/stub_reducer +++ b/stubs/redux/stub/stub_reducer @@ -129,7 +129,7 @@ ListUIState _removeFromListMultiselect( ListUIState _clearListMultiselect( ListUIState productListState, ClearStubMultiselect action) { - return productListState.rebuild((b) => b..selectedIds = ListBuilder()); + return productListState.rebuild((b) => b..selectedIds = null; } final stubsReducer = combineReducers([