From 027ab8e0d848fb13e44d16de1c0ab7cbfac56192 Mon Sep 17 00:00:00 2001 From: DatDang Date: Wed, 25 Jun 2025 15:30:50 +0700 Subject: [PATCH] TF-3837 Thread Detail Adjust view when offline --- .../extension/initialize_thread_detail_emails.dart | 1 + .../presentation/thread_detail_controller.dart | 6 ++++++ .../extension/initialize_thread_detail_emails_test.dart | 2 ++ 3 files changed, 9 insertions(+) diff --git a/lib/features/thread_detail/presentation/extension/initialize_thread_detail_emails.dart b/lib/features/thread_detail/presentation/extension/initialize_thread_detail_emails.dart index 0fe9bc6c3..30b06699b 100644 --- a/lib/features/thread_detail/presentation/extension/initialize_thread_detail_emails.dart +++ b/lib/features/thread_detail/presentation/extension/initialize_thread_detail_emails.dart @@ -55,6 +55,7 @@ extension InitializeThreadDetailEmails on ThreadDetailController { }) { return selectedEmailId == null || !isThreadDetailEnabled || + !networkConnected || updateCurrentThreadDetail; } } \ No newline at end of file diff --git a/lib/features/thread_detail/presentation/thread_detail_controller.dart b/lib/features/thread_detail/presentation/thread_detail_controller.dart index 2c9734c3f..5d042cb67 100644 --- a/lib/features/thread_detail/presentation/thread_detail_controller.dart +++ b/lib/features/thread_detail/presentation/thread_detail_controller.dart @@ -33,6 +33,8 @@ import 'package:tmail_ui_user/features/email/presentation/utils/email_action_rea import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_rule_filter_state.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_email_rule_filter_interactor.dart'; +import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart' + if (dart.library.html) 'package:tmail_ui_user/features/network_connection/presentation/web_network_connection_controller.dart'; import 'package:tmail_ui_user/features/search/email/presentation/search_email_controller.dart'; import 'package:tmail_ui_user/features/thread_detail/domain/state/get_thread_by_id_state.dart'; import 'package:tmail_ui_user/features/thread_detail/domain/state/get_emails_by_ids_state.dart'; @@ -90,6 +92,7 @@ class ThreadDetailController extends BaseController { final mailboxDashBoardController = Get.find(); final searchEmailController = Get.find(); + final networkConnectionController = Get.find(); final downloadManager = Get.find(); final downloadProgressState = StreamController>(); @@ -114,6 +117,8 @@ class ThreadDetailController extends BaseController { .value == true; return isWebSearchRunning || isMobileSearchRunning; } + bool get networkConnected => + networkConnectionController.isNetworkConnectionAvailable(); bool get isThreadDetailEnabled => threadDetailSettingStatus == ThreadDetailSettingStatus.enabled; @@ -206,6 +211,7 @@ class ThreadDetailController extends BaseController { accountId != null && sentMailboxId != null && ownEmailAddress != null && + networkConnected && isThreadDetailEnabled; } diff --git a/test/features/thread_detail/presentation/extension/initialize_thread_detail_emails_test.dart b/test/features/thread_detail/presentation/extension/initialize_thread_detail_emails_test.dart index 37b5a1a02..c7f686afd 100644 --- a/test/features/thread_detail/presentation/extension/initialize_thread_detail_emails_test.dart +++ b/test/features/thread_detail/presentation/extension/initialize_thread_detail_emails_test.dart @@ -60,6 +60,8 @@ void main() { when(threadDetailController.session).thenReturn(session); when(threadDetailController.isThreadDetailEnabled) .thenReturn(true); + when(threadDetailController.networkConnected) + .thenReturn(true); when(threadDetailController.mailboxDashBoardController) .thenReturn(mailboxDashboardController); when(mailboxDashboardController.selectedEmail)