evaluateConditions method

void evaluateConditions({
  1. required Map<String, InputValue> values,
  2. InputChanged? onChanged,
})

Implementation

void evaluateConditions({
  required Map<String, InputValue> values,
  InputChanged? onChanged,
}) {
  final result = conditions?.evaluate(values);
  if (result != conditionEvalResult) {
    conditionEvalResult = result;
    if (onChanged != null) {
      Future.microtask(() {
        final inputValue = values[id];
        // reset if input is disabled
        final value = result?.isEnabled ?? true
            ? inputValue?.value
            : defaultValue ?? '';

        final notifier = inputValue?.controller;
        if (notifier is TextEditingController) {
          notifier.value = TextEditingValue(
            text: value,
          );
        } else {
          notifier?.value = null;
        }

        onChanged(
          id,
          isValid(value),
          value,
        );
      });
    }
  }
}