Initial
This commit is contained in:
29
lib/utils/frequency_input_formatter.dart
Normal file
29
lib/utils/frequency_input_formatter.dart
Normal file
@@ -0,0 +1,29 @@
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
class FrequencyInputFormatter extends TextInputFormatter {
|
||||
static const int maxDigits = 5;
|
||||
|
||||
@override
|
||||
TextEditingValue formatEditUpdate(
|
||||
TextEditingValue oldValue, TextEditingValue newValue) {
|
||||
String digitsOnly = newValue.text.replaceAll(RegExp(r'[^0-9]'), '');
|
||||
|
||||
if (digitsOnly.length > maxDigits) {
|
||||
return oldValue;
|
||||
}
|
||||
|
||||
String formatted = digitsOnly;
|
||||
if (digitsOnly.length > 3) {
|
||||
formatted = '${digitsOnly.substring(0, 3)}.${digitsOnly.substring(3)}';
|
||||
}
|
||||
|
||||
if (formatted.endsWith('.') && digitsOnly.length <= 3) {
|
||||
formatted = formatted.substring(0, formatted.length - 1);
|
||||
}
|
||||
|
||||
return TextEditingValue(
|
||||
text: formatted,
|
||||
selection: TextSelection.collapsed(offset: formatted.length),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user