SubDefault<T> constructor

SubDefault<T>({
  1. required T? value,
  2. required SubValueCreate<T> create,
  3. SubValueKeys? keys,
  4. SubValueDispose<T>? dispose,
  5. required SubValueBuild<T> builder,
})

Creates a default value if the value passed in is null.

Implementation

SubDefault({
  required T? value,
  required SubValueCreate<T> create,
  SubValueKeys? keys,
  SubValueDispose<T>? dispose,
  required SubValueBuild<T> builder,
}) : super(
        create: () {
          if (value != null) {
            return _MaybeDefaultValue(value);
          } else {
            return _MaybeDefaultValue.asDefault(create());
          }
        },
        keys: [value, ...?keys],
        dispose: (value) {
          if (value.isDefault) {
            dispose?.call(value.value);
          }
        },
        builder: (context, value) => builder(context, value.value),
      );