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/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/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/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/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_ai_needs_action_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_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( floatingActionButton: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Container( Obx(() {
padding: const EdgeInsetsDirectional.only(end: 4.0), final emailList =
child: ScrollToTopButtonWidget( controller.mailboxDashBoardController.emailsInCurrentMailbox;
scrollController: controller.listEmailController, if (emailList.isNotEmpty) {
onTap: controller.scrollToTop, return Padding(
responsiveUtils: controller.responsiveUtils, padding: const EdgeInsetsDirectional.only(end: 4.0, bottom: 24),
icon: SvgPicture.asset( child: ScrollToTopButtonWidget(
controller.imagePaths.icArrowUpOutline, scrollController: controller.listEmailController,
width: ScrollToTopButtonWidgetStyles.iconWidth, onTap: controller.scrollToTop,
height: ScrollToTopButtonWidgetStyles.iconHeight, responsiveUtils: controller.responsiveUtils,
fit: BoxFit.fill, icon: SvgPicture.asset(
colorFilter: Colors.white.asFilter(), controller.imagePaths.icArrowUpOutline,
), width: ScrollToTopButtonWidgetStyles.iconWidth,
), height: ScrollToTopButtonWidgetStyles.iconHeight,
), fit: BoxFit.fill,
const SizedBox(height: 24), colorFilter: Colors.white.asFilter(),
),
),
);
} else {
return const SizedBox.shrink();
}
}),
_buildFloatingButtonCompose(context), _buildFloatingButtonCompose(context),
], ],
), ),
@@ -817,6 +825,8 @@ class ThreadView extends GetWidget<ThreadController>
isFilterMessageActive: controller.mailboxDashBoardController.filterMessageOption.value != FilterMessageOption.all, isFilterMessageActive: controller.mailboxDashBoardController.filterMessageOption.value != FilterMessageOption.all,
isFavoriteFolder: controller.selectedMailbox?.isFavorite == true, isFavoriteFolder: controller.selectedMailbox?.isFavorite == true,
isActionRequiredFolder: controller.selectedMailbox?.isActionRequired == true, isActionRequiredFolder: controller.selectedMailbox?.isActionRequired == true,
isLabelMailbox:
controller.selectedMailbox is PresentationLabelMailbox,
), ),
); );
} }