FieldBuilder<T> constructor

FieldBuilder<T>({
  1. Key? key,
  2. required FieldControl<T> control,
  3. required ControlWidgetBuilder<T?> builder,
  4. WidgetBuilder? noData,
  5. bool nullOk = false,
})

Stream based Widget builder. Listening FieldControlStream.stream about changes. control - required Stream controller. FieldControl or FieldControlSub. builder - required Widget builder. Non 'null' T value is passed directly. noData - Widget to show, when value is 'null'. nullOk - Determine where to handle 'null' values. 'true' - 'null' will be passed to builder.

Implementation

FieldBuilder({
  super.key,
  required FieldControl<T> control,
  required ControlWidgetBuilder<T?> builder,
  WidgetBuilder? noData,
  bool nullOk = false,
}) : super(
          control: control,
          builder: (context, snapshot) {
            if (snapshot.hasData || nullOk) {
              return builder(context, snapshot.data);
            }

            if (noData != null) {
              return noData(context);
            }

            return Container();
          });