TF-4227 Hide the "Scroll to top" button when there are no emails to load.

This commit is contained in:
dab246
2026-01-07 11:11:54 +07:00
committed by Dat H. Pham
parent ca35924a5f
commit 00ce5b4a1f
@@ -21,6 +21,7 @@ import 'package:tmail_ui_user/features/email/presentation/model/popup_menu_item_
import 'package:tmail_ui_user/features/mailbox/domain/state/clear_mailbox_state.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/move_folder_content_state.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/presentation_label_mailbox.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_ai_needs_action_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.dart';
@@ -273,22 +274,29 @@ class ThreadView extends GetWidget<ThreadController>
floatingActionButton: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
padding: const EdgeInsetsDirectional.only(end: 4.0),
child: ScrollToTopButtonWidget(
scrollController: controller.listEmailController,
onTap: controller.scrollToTop,
responsiveUtils: controller.responsiveUtils,
icon: SvgPicture.asset(
controller.imagePaths.icArrowUpOutline,
width: ScrollToTopButtonWidgetStyles.iconWidth,
height: ScrollToTopButtonWidgetStyles.iconHeight,
fit: BoxFit.fill,
colorFilter: Colors.white.asFilter(),
),
),
),
const SizedBox(height: 24),
Obx(() {
final emailList =
controller.mailboxDashBoardController.emailsInCurrentMailbox;
if (emailList.isNotEmpty) {
return Padding(
padding: const EdgeInsetsDirectional.only(end: 4.0, bottom: 24),
child: ScrollToTopButtonWidget(
scrollController: controller.listEmailController,
onTap: controller.scrollToTop,
responsiveUtils: controller.responsiveUtils,
icon: SvgPicture.asset(
controller.imagePaths.icArrowUpOutline,
width: ScrollToTopButtonWidgetStyles.iconWidth,
height: ScrollToTopButtonWidgetStyles.iconHeight,
fit: BoxFit.fill,
colorFilter: Colors.white.asFilter(),
),
),
);
} else {
return const SizedBox.shrink();
}
}),
_buildFloatingButtonCompose(context),
],
),
@@ -817,6 +825,8 @@ class ThreadView extends GetWidget<ThreadController>
isFilterMessageActive: controller.mailboxDashBoardController.filterMessageOption.value != FilterMessageOption.all,
isFavoriteFolder: controller.selectedMailbox?.isFavorite == true,
isActionRequiredFolder: controller.selectedMailbox?.isActionRequired == true,
isLabelMailbox:
controller.selectedMailbox is PresentationLabelMailbox,
),
);
}