diff --git a/lib/features/thread/presentation/widgets/thread_view_bottom_loading_bar_widget.dart b/lib/features/thread/presentation/widgets/thread_view_bottom_loading_bar_widget.dart new file mode 100644 index 000000000..6440543e1 --- /dev/null +++ b/lib/features/thread/presentation/widgets/thread_view_bottom_loading_bar_widget.dart @@ -0,0 +1,33 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:dartz/dartz.dart'; +import 'package:flutter/material.dart'; +import 'package:tmail_ui_user/features/base/widget/cupertino_loading_widget.dart'; +import 'package:tmail_ui_user/features/thread/domain/state/load_more_emails_state.dart'; +import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_state.dart'; + +class ThreadViewBottomLoadingBarWidget extends StatelessWidget { + + final Either viewState; + + const ThreadViewBottomLoadingBarWidget({ + super.key, + required this.viewState, + }); + + @override + Widget build(BuildContext context) { + return viewState.fold( + (failure) => const SizedBox.shrink(), + (success) { + if (success is SearchingMoreState || success is LoadingMoreEmails) { + return const Padding( + padding: EdgeInsetsDirectional.only(bottom: 16), + child: CupertinoLoadingWidget()); + } else { + return const SizedBox.shrink(); + } + } + ); + } +} diff --git a/lib/features/thread/presentation/widgets/thread_view_loading_bar_widget.dart b/lib/features/thread/presentation/widgets/thread_view_loading_bar_widget.dart new file mode 100644 index 000000000..236559210 --- /dev/null +++ b/lib/features/thread/presentation/widgets/thread_view_loading_bar_widget.dart @@ -0,0 +1,33 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:dartz/dartz.dart'; +import 'package:flutter/material.dart'; +import 'package:tmail_ui_user/features/base/widget/cupertino_loading_widget.dart'; +import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart'; +import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart'; + +class ThreadViewLoadingBarWidget extends StatelessWidget { + + final Either viewState; + + const ThreadViewLoadingBarWidget({ + super.key, + required this.viewState, + }); + + @override + Widget build(BuildContext context) { + return viewState.fold( + (failure) => const SizedBox.shrink(), + (success) { + if (success is SearchingState || success is GetAllEmailLoading) { + return const Padding( + padding: EdgeInsetsDirectional.only(top: 16), + child: CupertinoLoadingWidget()); + } else { + return const SizedBox.shrink(); + } + } + ); + } +}