Skip to content

Commit f27af78

Browse files
authored
Fixed the validation for a Form Builder Phone Field. (#307)
1 parent 34d583d commit f27af78

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

lib/src/fields/form_builder_phone_field.dart

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,12 @@ class FormBuilderPhoneFieldState extends State<FormBuilderPhoneField> {
131131
Country _selectedDialogCountry;
132132

133133
String get fullNumber {
134-
return "+${_selectedDialogCountry.phoneCode}${_effectiveController.text}";
134+
// When there is no phone number text, the field is empty -- the country
135+
// prefix is only prepended when a phone number is specified.
136+
final phoneText = _effectiveController.text;
137+
return phoneText.isNotEmpty
138+
? '+${_selectedDialogCountry.phoneCode}$phoneText'
139+
: phoneText;
135140
}
136141

137142
@override
@@ -154,7 +159,7 @@ class FormBuilderPhoneFieldState extends State<FormBuilderPhoneField> {
154159
super.initState();
155160
}
156161

157-
_parsePhone() async {
162+
Future<void> _parsePhone() async {
158163
if (_initialValue != null && _initialValue.isNotEmpty) {
159164
try {
160165
var parseResult = await PhoneNumber().parse(_initialValue);
@@ -170,11 +175,10 @@ class FormBuilderPhoneFieldState extends State<FormBuilderPhoneField> {
170175
}
171176
}
172177

173-
_invokeChange(FormFieldState field) {
174-
field.didChange(fullNumber);
175-
if (widget.onChanged != null) {
176-
widget.onChanged(fullNumber);
177-
}
178+
void _invokeChange(FormFieldState field) {
179+
final newFullNumber = fullNumber;
180+
field.didChange(newFullNumber);
181+
widget.onChanged?.call(newFullNumber);
178182
}
179183

180184
@override
@@ -206,6 +210,7 @@ class FormBuilderPhoneFieldState extends State<FormBuilderPhoneField> {
206210
focusNode: _readOnly ? AlwaysDisabledFocusNode() : widget.focusNode,
207211
decoration: widget.decoration.copyWith(
208212
enabled: !_readOnly,
213+
errorText: field.errorText,
209214
// prefixIcon: widget.decoration.prefixIcon == null ? _textFieldPrefix(field) : widget.decoration.prefixIcon,
210215
// prefix: widget.decoration.prefixIcon != null ? _textFieldPrefix(field) : null,
211216
prefix: _textFieldPrefix(field),

0 commit comments

Comments
 (0)