onValueChange static method

void onValueChange(
  1. FormFieldState<String> field,
  2. GrxFormFieldController controller, {
  3. void onChanged(
    1. String
    )?,
})

Implementation

static void onValueChange(
  FormFieldState<String> field,
  GrxFormFieldController controller, {
  void Function(String)? onChanged,
}) {
  if (controller.hasListeners) return;

  void onChangedHandler(String value) {
    if (field.mounted && field.value != value) {
      if (onChanged != null) {
        onChanged(value);
      }

      SchedulerBinding.instance.addPostFrameCallback(
        (_) => field.didChange(value),
      );
    }
  }

  void listener() => onChangedHandler(controller.text);

  controller.removeListener(listener);
  controller.addListener(listener);
}