buildErrorField<B extends StateStreamable<S>, S> function

Widget buildErrorField<B extends StateStreamable<S>, S>(
  1. String field
)

Implementation

Widget buildErrorField<B extends StateStreamable<S>, S>(String field) {
  return BlocBuilder<B, S>(
    builder: (context, state) {
      return (state as dynamic).maybeMap(
        orElse: () => emptyWidget(),
        error: (value) {
          final errorMessages = value.dto.errors
              ?.firstWhereOrNull((element) => element.field == field)
              ?.messages;

          if (errorMessages == null) {
            return emptyWidget();
          }

          return ListView.builder(
            padding: EdgeInsets.zero,
            scrollDirection: Axis.vertical,
            shrinkWrap: true,
            physics: const NeverScrollableScrollPhysics(),
            itemCount: errorMessages?.length ?? 0,
            itemBuilder: (BuildContext context, int index) {
              return Text(
                errorMessages[index],
                style: const TextStyle(
                  color: Colors.red,
                ),
              );
            },
          );
        },
      );
    },
  );
}