build method

Widget build(
  1. Widget builder(
    1. BuildContext context,
    2. T
    ), {
  2. EdgeInsets padding = EdgeInsets.zero,
  3. TextStyle? textStyle,
  4. TextAlign textAlign = TextAlign.start,
})

Implementation

Widget build(
  Widget Function(BuildContext context, T) builder, {
  EdgeInsets padding = EdgeInsets.zero,
  TextStyle? textStyle,
  TextAlign textAlign = TextAlign.start,
}) {
  return BlocBuilder<HubbleFormField<T, E>, ValueAndErrorMessage<T, E>>(
    bloc: this,
    builder: (context, state) {
      final theme = hubbleThemeData(context);

      return Column(
        mainAxisSize: MainAxisSize.min,
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          builder(context, state.value),
          Padding(
            padding: padding,
            child: AnimatedSize(
              duration: const Duration(milliseconds: 200),
              child: state.isVisible && state.error != null
                  ? HubbleText(
                      state.visibleError.toString(),
                      style: theme.typography.s11
                          .copyWith(
                            color: theme.colors.system.error.medium,
                            fontWeight: FontWeight.w400,
                          )
                          .merge(textStyle),
                      textAlign: textAlign,
                    )
                  : const SizedBox.shrink(),
            ),
          ),
        ],
      );
    },
  );
}