TF-3924 Thread Detail Delay selected email content render

This commit is contained in:
DatDang
2025-08-01 14:39:09 +07:00
committed by Dat H. Pham
parent bfd58d5e91
commit e5e1771834
9 changed files with 138 additions and 66 deletions
@@ -20,6 +20,7 @@ import 'package:tmail_ui_user/features/thread_detail/presentation/extension/on_t
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/on_thread_page_changed.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/widgets/thread_detail_app_bar.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/widgets/thread_detail_cupertino_loading_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import '../../manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart';
@@ -109,9 +110,16 @@ class ThreadDetailView extends GetWidget<ThreadDetailController> {
}
final nonPageViewThread = Expanded(
child: SingleChildScrollView(
controller: controller.scrollController,
child: threadBody,
child: Stack(
children: [
SingleChildScrollView(
controller: controller.scrollController,
child: threadBody,
),
ThreadDetailCupertinoLoadingWidget(
threadDetailController: controller,
),
],
),
);
@@ -122,18 +130,25 @@ class ThreadDetailView extends GetWidget<ThreadDetailController> {
if (currentIndex == -1) return nonPageViewThread;
return Expanded(
child: PageView.builder(
controller: manager.pageController,
itemCount: manager.isThreadDetailEnabled
? manager.availableThreadIds.length
: manager.currentDisplayedEmails.length,
itemBuilder: (context, index) {
if (index != currentIndex) {
return const SizedBox.shrink();
}
return SingleChildScrollView(child: threadBody);
},
onPageChanged: controller.onThreadPageChanged,
child: Stack(
children: [
PageView.builder(
controller: manager.pageController,
itemCount: manager.isThreadDetailEnabled
? manager.availableThreadIds.length
: manager.currentDisplayedEmails.length,
itemBuilder: (context, index) {
if (index != currentIndex) {
return const SizedBox.shrink();
}
return SingleChildScrollView(child: threadBody);
},
onPageChanged: controller.onThreadPageChanged,
),
ThreadDetailCupertinoLoadingWidget(
threadDetailController: controller,
),
],
),
);
}