From 75e39b89c14ae91b5c93916a06b032fcf7fe92a3 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Jun 2018 02:40:35 -0700 Subject: [PATCH] Contacts --- lib/ui/client/edit/client_edit_contacts.dart | 55 ++++++++++++++------ lib/utils/localization.dart | 3 ++ 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/lib/ui/client/edit/client_edit_contacts.dart b/lib/ui/client/edit/client_edit_contacts.dart index 64ce0b471..906d4219e 100644 --- a/lib/ui/client/edit/client_edit_contacts.dart +++ b/lib/ui/client/edit/client_edit_contacts.dart @@ -19,8 +19,8 @@ class ClientEditContacts extends StatefulWidget { class ClientEditContactsState extends State with AutomaticKeepAliveClientMixin { - - Map> contactKeys; + List contacts; + List> contactKeys; @override bool get wantKeepAlive => true; @@ -28,32 +28,56 @@ class ClientEditContactsState extends State @override void initState() { super.initState(); - contactKeys = Map.fromIterable(widget.client.contacts, - key: (contact) => contact, - value: (contact) => GlobalKey(), - ); + var client = widget.client; + contacts = client.contacts.toList(); + contactKeys = client.contacts + .map((contact) => GlobalKey()) + .toList(); + + // Add initial blank contact + _onAddPressed(); } List getContacts() { List contacts = []; - contactKeys.forEach((contact, contactKey) { + contactKeys.forEach((contactKey) { contacts.add(contactKey.currentState.getContact()); }); return contacts; } + _onAddPressed() { + print('onAddPressed..'); + setState(() { + contacts.add(ContactEntity()); + contactKeys.add(GlobalKey()); + }); + } + @override Widget build(BuildContext context) { var localization = AppLocalization.of(context); - var client = widget.client; + + List items = []; + + for (var i=0; i { String _firstName; ContactEntity getContact() { - return ContactEntity((b) => b - ..firstName = _firstName); + return ContactEntity((b) => b..firstName = _firstName); } @override diff --git a/lib/utils/localization.dart b/lib/utils/localization.dart index 0b869e243..4d8963a3f 100644 --- a/lib/utils/localization.dart +++ b/lib/utils/localization.dart @@ -63,6 +63,8 @@ class AppLocalization { 'additional': 'Additional', 'first_name': 'First Name', 'last_name': 'Last Name', + 'add': 'Add', + 'product': 'Product', 'products': 'Products', 'new_product': 'New Product', @@ -147,6 +149,7 @@ class AppLocalization { String get additional => _localizedValues[locale.languageCode]['additional']; String get firstName => _localizedValues[locale.languageCode]['first_name']; String get lastName => _localizedValues[locale.languageCode]['last_name']; + String get add => _localizedValues[locale.languageCode]['add']; String get product => _localizedValues[locale.languageCode]['product']; String get products => _localizedValues[locale.languageCode]['products'];