buildContainer method

Widget buildContainer(
  1. TInputContext ctx, {
  2. required Widget? child,
  3. Widget? additionalPostWidget,
  4. Widget? additionalPreWidget,
  5. String? label,
  6. String? tag,
  7. String? helperText,
  8. List<String>? errors,
  9. bool isRequired = false,
  10. bool isMultiline = false,
  11. bool block = true,
})

Implementation

Widget buildContainer(
  TInputContext ctx, {
  required Widget? child,
  Widget? additionalPostWidget,
  Widget? additionalPreWidget,
  String? label,
  String? tag,
  String? helperText,
  List<String>? errors,
  bool isRequired = false,
  bool isMultiline = false,
  bool block = true,
}) {
  return Column(
    mainAxisSize: MainAxisSize.min,
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
      buildLabel(ctx, label, tag, isRequired),
      Container(
        constraints: BoxConstraints(minHeight: fieldHeight),
        decoration: buildDecoration(ctx),
        child: Row(
          mainAxisSize: block ? MainAxisSize.max : MainAxisSize.min,
          children: [
            if (preWidget != null)
              Padding(
                padding: EdgeInsets.only(
                  top: fieldPadding.top,
                  bottom: fieldPadding.bottom,
                  left: fieldPadding.left,
                ),
                child: Center(child: preWidget!),
              ),
            if (additionalPreWidget != null)
              Padding(
                padding: EdgeInsets.only(
                  top: fieldPadding.top,
                  bottom: fieldPadding.bottom,
                  left: fieldPadding.left,
                ),
                child: Center(child: additionalPreWidget),
              ),
            block ? Expanded(child: Padding(padding: fieldPadding, child: child)) : Padding(padding: fieldPadding, child: child),
            if (additionalPostWidget != null)
              Padding(
                padding: EdgeInsets.only(
                  top: fieldPadding.top,
                  bottom: fieldPadding.bottom,
                  right: fieldPadding.right,
                ),
                child: Center(child: additionalPostWidget),
              ),
            if (postWidget != null)
              Padding(
                padding: EdgeInsets.only(
                  top: fieldPadding.top,
                  bottom: fieldPadding.bottom,
                  right: fieldPadding.right,
                ),
                child: Center(child: postWidget!),
              ),
          ],
        ),
      ),
      buildHelperText(ctx, helperText),
      if (errors != null && errors.isNotEmpty) buildErrors(ctx, errors),
    ],
  );
}