diff --git a/lib/ui/app/entity_dropdown.dart b/lib/ui/app/entity_dropdown.dart index f82fb5a7b..e78ae2a5c 100644 --- a/lib/ui/app/entity_dropdown.dart +++ b/lib/ui/app/entity_dropdown.dart @@ -15,14 +15,14 @@ class EntityDropdown extends StatefulWidget { @required this.entityMap, @required this.onFilterChanged, @required this.onSelected, - this.initialValue, + this.value, }); final EntityType entityType; final List entityList; final BuiltMap entityMap; final String labelText; - final int initialValue; + final String value; final Function(String) onFilterChanged; final Function(int) onSelected; @@ -32,6 +32,7 @@ class EntityDropdown extends StatefulWidget { class _EntityDropdownState extends State { final _focusNode = FocusNode(); + final _textController = TextEditingController(); @override void initState() { @@ -41,6 +42,7 @@ class _EntityDropdownState extends State { @override void dispose() { + _textController.dispose(); _focusNode.removeListener(_onFocusChanged); _focusNode.dispose(); super.dispose(); @@ -118,7 +120,11 @@ class _EntityDropdownState extends State { title: Text(entity.listDisplayName), subtitle: subtitle != null ? Text(subtitle) : null, - onTap: () => widget.onSelected(entityId), + onTap: () { + _textController.text = widget.entityMap[entityId].listDisplayName; + widget.onSelected(entityId); + Navigator.pop(context); + }, ); }).toList()), ]), @@ -134,6 +140,7 @@ class _EntityDropdownState extends State { @override Widget build(BuildContext context) { return TextFormField( + controller: _textController, focusNode: _focusNode, decoration: InputDecoration( labelText: widget.labelText, diff --git a/lib/ui/invoice/edit/invoice_edit_details.dart b/lib/ui/invoice/edit/invoice_edit_details.dart index 8548b82d4..8f7857845 100644 --- a/lib/ui/invoice/edit/invoice_edit_details.dart +++ b/lib/ui/invoice/edit/invoice_edit_details.dart @@ -84,6 +84,7 @@ class InvoiceEditDetailsState extends State { ? EntityDropdown( entityType: EntityType.client, labelText: localization.client, + value: viewModel.clientMap[invoice.clientId]?.displayName, entityList: viewModel.clientList, entityMap: viewModel.clientMap, onFilterChanged: viewModel.onEntityFilterChanged,