diff --git a/lib/flutter_address_form.dart b/lib/flutter_address_form.dart index 2ed7aa0..253c382 100644 --- a/lib/flutter_address_form.dart +++ b/lib/flutter_address_form.dart @@ -1,7 +1,3 @@ library flutter_address_form; -/// A Calculator. -class Calculator { - /// Returns [value] plus 1. - int addOne(int value) => value + 1; -} +export 'src/address_form.dart'; diff --git a/lib/src/address_form.dart b/lib/src/address_form.dart new file mode 100644 index 0000000..6ca5fee --- /dev/null +++ b/lib/src/address_form.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; + +class AddressForm extends StatefulWidget { + AddressForm({Key? key}) : super(key: key); + + @override + State createState() => _AddressFormState(); +} + +class _AddressFormState extends State { + final TextEditingController _zipcodeController = TextEditingController(); + final RegExp _zipcodeRegExp = RegExp(r'^[1-9][0-9]{3}\s?[a-zA-Z]{2}$'); + @override + Widget build(BuildContext context) { + return Form( + child: Column( + children: [ + _createField( + label: 'Postcode', + controller: _zipcodeController, + ), + Flexible( + child: Row( + children: [ + _createField( + label: 'Huisnummer', + controller: TextEditingController(), + ), + _createField( + label: 'Toevoeging', + controller: TextEditingController(), + ), + ], + ), + ), + _createField( + label: 'Straatnaam', + controller: TextEditingController(), + ), + _createField( + label: 'Woonplaats', + controller: TextEditingController(), + ) + ], + ), + ); + } + + Widget _createField( + {required String label, required TextEditingController controller}) { + return Flexible( + child: Container( + margin: const EdgeInsets.all(10), + child: TextFormField( + validator: (value) { + print(_zipcodeRegExp.hasMatch(value!)); + }, + decoration: InputDecoration( + label: Text(label), + border: const OutlineInputBorder(), + ), + ), + ), + ); + } +}