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((_) {
        if (field.mounted) {
          field.didChange(value);
        }
      });
    }
  }

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

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