This commit is contained in:
unknown 2018-06-20 03:23:56 -07:00
parent 2bf9fb7f6c
commit fc03a16b15
2 changed files with 11 additions and 3 deletions

View File

@ -15,14 +15,14 @@ class EntityDropdown extends StatefulWidget {
@required this.entityMap, @required this.entityMap,
@required this.onFilterChanged, @required this.onFilterChanged,
@required this.onSelected, @required this.onSelected,
this.initialValue, this.value,
}); });
final EntityType entityType; final EntityType entityType;
final List<int> entityList; final List<int> entityList;
final BuiltMap<int, BaseEntity> entityMap; final BuiltMap<int, BaseEntity> entityMap;
final String labelText; final String labelText;
final int initialValue; final String value;
final Function(String) onFilterChanged; final Function(String) onFilterChanged;
final Function(int) onSelected; final Function(int) onSelected;
@ -32,6 +32,7 @@ class EntityDropdown extends StatefulWidget {
class _EntityDropdownState extends State<EntityDropdown> { class _EntityDropdownState extends State<EntityDropdown> {
final _focusNode = FocusNode(); final _focusNode = FocusNode();
final _textController = TextEditingController();
@override @override
void initState() { void initState() {
@ -41,6 +42,7 @@ class _EntityDropdownState extends State<EntityDropdown> {
@override @override
void dispose() { void dispose() {
_textController.dispose();
_focusNode.removeListener(_onFocusChanged); _focusNode.removeListener(_onFocusChanged);
_focusNode.dispose(); _focusNode.dispose();
super.dispose(); super.dispose();
@ -118,7 +120,11 @@ class _EntityDropdownState extends State<EntityDropdown> {
title: Text(entity.listDisplayName), title: Text(entity.listDisplayName),
subtitle: subtitle:
subtitle != null ? Text(subtitle) : null, subtitle != null ? Text(subtitle) : null,
onTap: () => widget.onSelected(entityId), onTap: () {
_textController.text = widget.entityMap[entityId].listDisplayName;
widget.onSelected(entityId);
Navigator.pop(context);
},
); );
}).toList()), }).toList()),
]), ]),
@ -134,6 +140,7 @@ class _EntityDropdownState extends State<EntityDropdown> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return TextFormField( return TextFormField(
controller: _textController,
focusNode: _focusNode, focusNode: _focusNode,
decoration: InputDecoration( decoration: InputDecoration(
labelText: widget.labelText, labelText: widget.labelText,

View File

@ -84,6 +84,7 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
? EntityDropdown( ? EntityDropdown(
entityType: EntityType.client, entityType: EntityType.client,
labelText: localization.client, labelText: localization.client,
value: viewModel.clientMap[invoice.clientId]?.displayName,
entityList: viewModel.clientList, entityList: viewModel.clientList,
entityMap: viewModel.clientMap, entityMap: viewModel.clientMap,
onFilterChanged: viewModel.onEntityFilterChanged, onFilterChanged: viewModel.onEntityFilterChanged,