From aa0948993add0091e4fce53e04c673049eaa30c7 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Fri, 30 Apr 2021 18:44:11 +0300 Subject: [PATCH] Adjust multiselect UI --- lib/ui/app/tables/entity_list.dart | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/ui/app/tables/entity_list.dart b/lib/ui/app/tables/entity_list.dart index bc7e684ff..546b9c55e 100644 --- a/lib/ui/app/tables/entity_list.dart +++ b/lib/ui/app/tables/entity_list.dart @@ -13,6 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/app_scrollbar.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/forms/save_cancel_buttons.dart'; import 'package:invoiceninja_flutter/ui/app/help_text.dart'; +import 'package:invoiceninja_flutter/ui/app/icon_text.dart'; import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart'; import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart'; import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart'; @@ -21,6 +22,7 @@ import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart'; import 'package:invoiceninja_flutter/ui/app/tables/app_data_table.dart'; import 'package:invoiceninja_flutter/ui/app/tables/app_paginated_data_table.dart'; import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart'; +import 'package:invoiceninja_flutter/utils/icons.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:invoiceninja_flutter/utils/app_context.dart'; @@ -297,6 +299,7 @@ class _EntityListState extends State { : listUIState.selectedIds .map((entityId) => entityMap[entityId]) .toList(); + final firstEntity = entities.isEmpty ? null : entities.first; print('## ENTITIES: $entities'); @@ -345,7 +348,31 @@ class _EntityListState extends State { SizedBox(width: 16), OverflowView.flexible( spacing: 4, - children: [], + children: entities.isEmpty + ? [] + : firstEntity + .getActions( + includeEdit: false, + multiselect: true, + userCompany: state.userCompany, + client: (firstEntity is BelongsToClient) + ? state.clientState.get( + (firstEntity as BelongsToClient) + .clientId) + : null, + ) + .map( + (action) => OutlinedButton( + child: IconText( + icon: getEntityActionIcon(action), + text: localization.lookup('$action'), + ), + onPressed: () { + // + }, + ), + ) + .toList(), builder: (context, remaining) { return PopupMenuButton( child: Text('test'),