registerLeaf method

void registerLeaf(
  1. String name,
  2. JarSchema schema,
  3. dynamic value
)

Implementation

void registerLeaf(
    String name, JarSchema<dynamic, dynamic> schema, dynamic value) {
  final config = JarFieldConfig<dynamic>(
    schema: schema as JarSchema<dynamic, JarSchema<dynamic, dynamic>>,
  );
  _configs[name] = config;
  _fields[name] = JarFieldState<dynamic>(
    value: value,
    error: value == null
        ? null
        : config.schema.validate(value, _contextFor(name, value)).error,
    name: name,
    onChange: (newValue) => setValue(name, newValue),
    markAsTouched: () => markAsTouched(name),
  );
  _controllers[name] ??= StreamController<JarFieldState<dynamic>>.broadcast();
  _watchers[name] ??= [];
  _notifyField(name);
}