parseTimeValue static method

dynamic parseTimeValue(
  1. String value, {
  2. required TextInputType keyboardType,
  3. required bool allowDecimal,
})

Enhanced numeric value parsing with better error handling

Implementation

static dynamic parseTimeValue(
  String value, {
  required TextInputType keyboardType,
  required bool allowDecimal,
}) {
  if (value.isEmpty) return null;

  final cleanValue = _extractRawNumber(value);
  if (cleanValue.isEmpty || _isPartialInput(cleanValue)) return null;

  // For phone numbers, return clean string
  if (keyboardType == TextInputType.phone) {
    return cleanValue.replaceAll(RegExp(r'[^\d]'), '');
  }

  // For numeric inputs, parse as number
  try {
    if (allowDecimal) {
      return double.tryParse(cleanValue);
    } else {
      return int.tryParse(cleanValue);
    }
  } catch (e) {
    return null;
  }
}