updateMask method
void
updateMask({
- required String value,
- required TextEditingController controller,
- required RegExp regexFilter,
- TextInputType? textInputType,
Implementation
void updateMask({required String value, required TextEditingController controller, required RegExp regexFilter, TextInputType? textInputType}) {
final List<int> lenghts = _formaters.map((e) => e.length).toList();
if (lenghts.any((e) => value.length < e) == false) return;
final updatedMask = _formaters.firstWhere((mask) => mask.length > value.length, orElse: () => '');
if (value.length - 1 == _formaters.first.length && _currentMask != _formaters.first) {
_currentMask = _formaters.first;
controller.value = mask!.updateMask(
mask: _formaters.first,
filter: {
"#": textInputType != null && textInputType == TextInputType.number ? RegExp(r'[0-9]') : regexFilter
},
);
return;
}
if (updatedMask.isEmpty || updatedMask == _currentMask) return;
if (value.length < updatedMask.length) {
_currentMask = updatedMask;
controller.value = mask!.updateMask(
mask: updatedMask,
filter: {
"#": textInputType != null && textInputType == TextInputType.number ? RegExp(r'[0-9]') : regexFilter
},
);
return;
}
}