register<T> method

void register<T>(
  1. String name,
  2. JarFieldConfig<T> config
)

Implementation

void register<T>(String name, JarFieldConfig<T> config) {
  if (isRegistered(name)) return;

  _configs[name] = config;
  _fields[name] = JarFieldState<T>(
    value: config.defaultValue,
    isDisabled: config.disabled,
    name: name,
    onChange: (value) => setValue<T>(name, value),
    markAsTouched: () => markAsTouched(name),
  );

  _controllers[name] = StreamController<JarFieldState<dynamic>>.broadcast();
  _watchers[name] = [];

  if (config.defaultValue != null) {
    setValue<T>(name, config.defaultValue);
  }

  _notifyField(name);
}