TF-1714 Display animation loading when click refresh mailbox button
(cherry picked from commit d4912afe2e38fdcb15fe4c2d37bde9ae30ff214d)
This commit is contained in:
@@ -161,7 +161,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
_searchEmailsSuccess(success);
|
||||
} else if (success is SearchMoreEmailSuccess) {
|
||||
_searchMoreEmailsSuccess(success);
|
||||
} else if (success is SearchingMoreState || success is LoadingMoreState) {
|
||||
} else if (success is SearchingMoreState || success is LoadingMoreEmails) {
|
||||
loadingMoreStatus = LoadingMoreStatus.running;
|
||||
} else if (success is GetEmailByIdLoading) {
|
||||
openingEmail.value = true;
|
||||
@@ -175,6 +175,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
void handleFailureViewState(Failure failure) {
|
||||
super.handleFailureViewState(failure);
|
||||
if (failure is SearchEmailFailure) {
|
||||
mailboxDashBoardController.refreshingMailboxState.value = Left(failure);
|
||||
canSearchMore = false;
|
||||
mailboxDashBoardController.emailsInCurrentMailbox.clear();
|
||||
} else if (failure is SearchMoreEmailFailure || failure is LoadMoreEmailsFailure) {
|
||||
@@ -183,6 +184,8 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
openingEmail.value = false;
|
||||
_navigationRouter = null;
|
||||
popAndPush(AppRoutes.unknownRoutePage);
|
||||
} else if (failure is GetAllEmailFailure) {
|
||||
mailboxDashBoardController.refreshingMailboxState.value = Left(failure);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -374,6 +377,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
}
|
||||
|
||||
void _getAllEmailSuccess(GetAllEmailSuccess success) {
|
||||
mailboxDashBoardController.refreshingMailboxState.value = Right(success);
|
||||
_currentEmailState = success.currentEmailState;
|
||||
log('ThreadController::_getAllEmailSuccess():_currentEmailState: $_currentEmailState');
|
||||
final newListEmail = success.emailList.syncPresentationEmail(
|
||||
@@ -724,6 +728,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
}
|
||||
|
||||
void _searchEmailsSuccess(SearchEmailSuccess success) {
|
||||
mailboxDashBoardController.refreshingMailboxState.value = Right(success);
|
||||
canSearchMore = true;
|
||||
final resultEmailSearchList = success.emailList
|
||||
.map((email) => email.toSearchPresentationEmail(mailboxDashBoardController.mapMailboxById))
|
||||
|
||||
@@ -18,7 +18,6 @@ import 'package:tmail_ui_user/features/network_connection/presentation/network_c
|
||||
import 'package:tmail_ui_user/features/quotas/presentation/widget/quotas_banner_widget.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_delete_all_spam_emails_styles.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_empty_trash_styles.dart';
|
||||
@@ -31,6 +30,8 @@ import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_bu
|
||||
if (dart.library.html) 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_web_builder.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/filter_message_cupertino_action_sheet_action_builder.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/spam_banner/spam_report_banner_widget.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/thread_view_bottom_loading_bar_widget.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/thread_view_loading_bar_widget.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
@@ -109,9 +110,9 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
}),
|
||||
if (!_responsiveUtils.isDesktop(context))
|
||||
_buildMarkAsMailboxReadLoading(context),
|
||||
_buildLoadingView(),
|
||||
Obx(() => ThreadViewLoadingBarWidget(viewState: controller.viewState.value)),
|
||||
Expanded(child: _buildListEmail(context)),
|
||||
_buildLoadingViewLoadMore(),
|
||||
Obx(() => ThreadViewBottomLoadingBarWidget(viewState: controller.viewState.value)),
|
||||
_buildListButtonSelectionForMobile(context),
|
||||
]
|
||||
)
|
||||
@@ -270,38 +271,6 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
.build()).toList();
|
||||
}
|
||||
|
||||
Widget _buildLoadingView() {
|
||||
return Obx(() => controller.viewState.value.fold(
|
||||
(failure) => const SizedBox.shrink(),
|
||||
(success) {
|
||||
if (controller.isSearchActive() || controller.searchController.advancedSearchIsActivated.isTrue) {
|
||||
return success is SearchingState
|
||||
? Padding(padding: const EdgeInsets.symmetric(vertical: 16), child: loadingWidget)
|
||||
: const SizedBox.shrink();
|
||||
} else {
|
||||
return success is LoadingState || controller.openingEmail.isTrue
|
||||
? Padding(padding: const EdgeInsets.symmetric(vertical: 16), child: loadingWidget)
|
||||
: const SizedBox.shrink();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
Widget _buildLoadingViewLoadMore() {
|
||||
return Obx(() => controller.viewState.value.fold(
|
||||
(failure) => const SizedBox.shrink(),
|
||||
(success) {
|
||||
if (controller.isSearchActive()) {
|
||||
return success is SearchingMoreState
|
||||
? Padding(padding: const EdgeInsets.only(bottom: 16), child: loadingWidget)
|
||||
: const SizedBox.shrink();
|
||||
} else {
|
||||
return success is LoadingMoreState
|
||||
? Padding(padding: const EdgeInsets.only(bottom: 16), child: loadingWidget)
|
||||
: const SizedBox.shrink();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
Widget _buildListEmail(BuildContext context) {
|
||||
return Container(
|
||||
margin: PlatformInfo.isWeb && _responsiveUtils.isDesktop(context)
|
||||
|
||||
Reference in New Issue
Block a user