TF-694 Fixed took a long time to select all emails at once

This commit is contained in:
dab246
2022-08-01 11:43:31 +07:00
committed by Dat H. Pham
parent 66e9b5f7c5
commit 6703ff840c
3 changed files with 402 additions and 162 deletions
@@ -553,6 +553,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
physics: const AlwaysScrollableScrollPhysics(),
padding: EdgeInsets.zero,
key: const PageStorageKey('list_presentation_email_in_threads'),
itemExtent: _getItemExtent(context),
itemCount: listPresentationEmail.length,
itemBuilder: (context, index) => Obx(() => (EmailTileBuilder(
context,
@@ -560,17 +561,23 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
controller.currentMailbox?.role,
controller.mailboxDashBoardController.currentSelectMode.value,
controller.searchController.searchState.value.searchStatus,
controller.searchQuery,
)
controller.searchQuery)
..addOnPressEmailActionClick((action, email) => controller.pressEmailAction(context, action, email))
..addOnMoreActionClick((email, position) => _responsiveUtils.isMobile(context)
? controller.openContextMenuAction(context, _contextMenuActionTile(context, email))
: controller.openPopupMenuAction(context, position, _popupMenuActionTile(context, email))))
.build()),
)
.build()))
);
}
double? _getItemExtent(BuildContext context) {
if (BuildUtils.isWeb) {
return _responsiveUtils.isDesktop(context) ? 52 : 85;
} else {
return null;
}
}
Widget _buildEmptyEmail(BuildContext context) {
return Obx(() => controller.viewState.value.fold(
(failure) => const SizedBox.shrink(),