mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-15 17:47:28 +00:00
28 lines
917 B
Dart
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;
|
|
}
|
|
}
|