This commit is contained in:
unknown 2018-06-12 03:07:57 -07:00
parent 75e39b89c1
commit 27ba5a8a07
2 changed files with 45 additions and 29 deletions

View File

@ -33,9 +33,6 @@ class ClientEditContactsState extends State<ClientEditContacts>
contactKeys = client.contacts contactKeys = client.contacts
.map((contact) => GlobalKey<ContactEditDetailsState>()) .map((contact) => GlobalKey<ContactEditDetailsState>())
.toList(); .toList();
// Add initial blank contact
_onAddPressed();
} }
List<ContactEntity> getContacts() { List<ContactEntity> getContacts() {
@ -47,12 +44,15 @@ class ClientEditContactsState extends State<ClientEditContacts>
} }
_onAddPressed() { _onAddPressed() {
print('onAddPressed..');
setState(() { setState(() {
contacts.add(ContactEntity()); contacts.add(ContactEntity());
contactKeys.add(GlobalKey<ContactEditDetailsState>()); contactKeys.add(GlobalKey<ContactEditDetailsState>());
}); });
} }
_onRemovePressed() {
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -60,20 +60,26 @@ class ClientEditContactsState extends State<ClientEditContacts>
List<Widget> items = []; List<Widget> items = [];
for (var i=0; i<contacts.length; i++) { for (var i = 0; i < contacts.length; i++) {
var contact = contacts[i]; var contact = contacts[i];
var contactKey = contactKeys[i]; var contactKey = contactKeys[i];
items.add(ContactEditDetails( items.add(ContactEditDetails(
contact: contact, contact: contact,
key: contactKey, key: contactKey,
onRemovePressed: _onRemovePressed(),
)); ));
} }
items.add(RaisedButton( items.add(Padding(
padding: const EdgeInsets.all(12.0),
child: RaisedButton(
elevation: 4.0, elevation: 4.0,
child: Text(localization.add), color: Theme.of(context).primaryColor,
textColor: Theme.of(context).secondaryHeaderColor,
child: Text(localization.addContact.toUpperCase()),
onPressed: _onAddPressed, onPressed: _onAddPressed,
)); ),
));
return ListView( return ListView(
children: items, children: items,
@ -85,9 +91,11 @@ class ContactEditDetails extends StatefulWidget {
ContactEditDetails({ ContactEditDetails({
Key key, Key key,
@required this.contact, @required this.contact,
@required this.onRemovePressed,
}) : super(key: key); }) : super(key: key);
final ContactEntity contact; final ContactEntity contact;
final Function onRemovePressed;
@override @override
ContactEditDetailsState createState() => ContactEditDetailsState(); ContactEditDetailsState createState() => ContactEditDetailsState();
@ -106,24 +114,32 @@ class ContactEditDetailsState extends State<ContactEditDetails> {
return Padding( return Padding(
padding: const EdgeInsets.only(bottom: 8.0), padding: const EdgeInsets.only(bottom: 8.0),
child: Card( child: Stack(
elevation: 2.0, children: [
child: Padding( IconButton(
padding: const EdgeInsets.only( icon: Icon(Icons.close),
left: 12.0, right: 12.0, top: 12.0, bottom: 18.0), onPressed: widget.onRemovePressed,
child: Column(
children: <Widget>[
TextFormField(
autocorrect: false,
initialValue: widget.contact.firstName,
onSaved: (value) => _firstName = value.trim(),
decoration: InputDecoration(
labelText: localization.firstName,
),
),
],
), ),
), Card(
elevation: 2.0,
child: Padding(
padding: const EdgeInsets.only(
left: 12.0, right: 12.0, top: 12.0, bottom: 18.0),
child: Column(
children: <Widget>[
TextFormField(
autocorrect: false,
initialValue: widget.contact.firstName,
onSaved: (value) => _firstName = value.trim(),
decoration: InputDecoration(
labelText: localization.firstName,
),
),
],
),
),
)
],
), ),
); );
} }

View File

@ -63,7 +63,7 @@ class AppLocalization {
'additional': 'Additional', 'additional': 'Additional',
'first_name': 'First Name', 'first_name': 'First Name',
'last_name': 'Last Name', 'last_name': 'Last Name',
'add': 'Add', 'add_contact': 'Add Contact',
'product': 'Product', 'product': 'Product',
'products': 'Products', 'products': 'Products',
@ -149,7 +149,7 @@ class AppLocalization {
String get additional => _localizedValues[locale.languageCode]['additional']; String get additional => _localizedValues[locale.languageCode]['additional'];
String get firstName => _localizedValues[locale.languageCode]['first_name']; String get firstName => _localizedValues[locale.languageCode]['first_name'];
String get lastName => _localizedValues[locale.languageCode]['last_name']; String get lastName => _localizedValues[locale.languageCode]['last_name'];
String get add => _localizedValues[locale.languageCode]['add']; String get addContact => _localizedValues[locale.languageCode]['add_contact'];
String get product => _localizedValues[locale.languageCode]['product']; String get product => _localizedValues[locale.languageCode]['product'];
String get products => _localizedValues[locale.languageCode]['products']; String get products => _localizedValues[locale.languageCode]['products'];