Files
syncrow-app/lib/utils/helpers/phone_number_formatter.dart
2024-02-17 16:27:27 +03:00

28 lines
917 B
Dart

import 'package:flutter/services.dart';
class PhoneNumberTextInputFormatter extends TextInputFormatter {
final String mask;
final String separator;
PhoneNumberTextInputFormatter({
required this.mask,
required this.separator,
});
@override
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if (newValue.text.isNotEmpty) {
if (newValue.text.length > oldValue.text.length) {
if (newValue.text.length > mask.length) return oldValue;
if (newValue.text.length < mask.length && mask[newValue.text.length - 1] == separator) {
return TextEditingValue(
text: '${oldValue.text}$separator${newValue.text.substring(newValue.text.length - 1)}',
selection: TextSelection.collapsed(
offset: newValue.selection.end + 1,
),
);
}
}
}
return newValue;
}
}