baseShimmerState method

Widget baseShimmerState(
  1. NotifierBuilder<T?> widget, {
  2. bool validNullable = true,
  3. Color? baseColor,
  4. Color? highlightColor,
  5. Widget onPlaceholderWidget()?,
  6. String? placeholderEmptyImagePath,
  7. String? placeholderEmptyTitle,
  8. String? placeholderEmptyMessage,
  9. EdgeInsetsGeometry? placeholderPadding,
  10. void onReloadTap()?,
})

Implementation

Widget baseShimmerState(
  NotifierBuilder<T?> widget, {
  bool validNullable = true,
  Color? baseColor,
  Color? highlightColor,
  Widget Function()? onPlaceholderWidget,
  String? placeholderEmptyImagePath,
  String? placeholderEmptyTitle,
  String? placeholderEmptyMessage,
  EdgeInsetsGeometry? placeholderPadding,
  void Function()? onReloadTap,
}) {
  return SimpleBuilder(
    builder: (_) {
      if (status.isLoading ||
          status.isEmpty ||
          status.isError ||
          (validNullable && state.isEmptyOrNull)) {
        if (status.isLoading) {
          return BaseShimmer(
            visible: status.isLoading,
            child: widget(state),
            baseColor: baseColor,
            highlightColor: highlightColor,
          );
        }
        return Padding(
          padding: placeholderPadding ?? EdgeInsets.zero,
          child: onPlaceholderWidget != null
              ? onPlaceholderWidget()
              : BasePlaceholderView(
                  title: getPlaceholderTitle(placeholderEmptyTitle),
                  message: getPlaceholderMessage(placeholderEmptyMessage),
                  image: placeholderEmptyImagePath,
                  onTap: onReloadTap ??
                      () {
                        change(null, status: RxStatus.loading());
                        onRequestData();
                      },
                ),
        );
      }
      return widget(state);
    },
  );
}