From 8690c245a5d01d2e4a21c43ac7d37b29fea630b7 Mon Sep 17 00:00:00 2001 From: DatDang Date: Thu, 31 Jul 2025 13:41:26 +0700 Subject: [PATCH] TF-3924 Thread Detail Remove scroll jump on initialize --- .../handle_get_emails_by_ids_success.dart | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/lib/features/thread_detail/presentation/extension/handle_get_emails_by_ids_success.dart b/lib/features/thread_detail/presentation/extension/handle_get_emails_by_ids_success.dart index 7f30f15ab..7a72eed14 100644 --- a/lib/features/thread_detail/presentation/extension/handle_get_emails_by_ids_success.dart +++ b/lib/features/thread_detail/presentation/extension/handle_get_emails_by_ids_success.dart @@ -1,5 +1,3 @@ -import 'package:collection/collection.dart'; -import 'package:flutter/material.dart'; import 'package:tmail_ui_user/features/email/presentation/bindings/email_bindings.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart'; import 'package:model/email/email_in_thread_status.dart'; @@ -14,7 +12,6 @@ extension HandleGetEmailsByIdsSuccess on ThreadDetailController { } final selectedEmailId = mailboxDashBoardController.selectedEmail.value?.id; - final isLoadMore = emailIdsPresentation.values.nonNulls.isNotEmpty; for (var presentationEmail in success.presentationEmails) { if (presentationEmail.id == null) continue; @@ -38,42 +35,5 @@ extension HandleGetEmailsByIdsSuccess on ThreadDetailController { ); } threadDetailManager.currentMobilePageViewIndex.refresh(); - - if (_skipScrollJump(isLoadMore)) return; - - final currentExpandedEmailIndex = currentExpandedEmailId.value == null - ? -1 - : emailIdsPresentation.keys.toList().indexOf(currentExpandedEmailId.value!); - final firstLoadedMoreEmailId = success.presentationEmails.firstOrNull?.id; - final firstLoadedMoreEmailIndex = firstLoadedMoreEmailId == null - ? -1 - : emailIdsPresentation.keys.toList().indexOf(firstLoadedMoreEmailId); - if (currentExpandedEmailIndex == -1 || firstLoadedMoreEmailIndex == -1) { - return; - } - - if (scrollController?.hasClients == false) return; - final currentScrollPosition = scrollController?.position.pixels; - final maxScrollExtent = scrollController?.position.maxScrollExtent; - final currentBottomScrollPosition = currentScrollPosition != null - && maxScrollExtent != null - ? maxScrollExtent - currentScrollPosition - : null; - - if (currentBottomScrollPosition != null) { - WidgetsBinding.instance.addPostFrameCallback((_) { - final newMaxScrollExtent = scrollController?.position.maxScrollExtent; - if (newMaxScrollExtent == null) return; - - if (currentExpandedEmailIndex < firstLoadedMoreEmailIndex) { - return; - } else if (newMaxScrollExtent != maxScrollExtent!) { - scrollController?.jumpTo(newMaxScrollExtent - currentBottomScrollPosition); - } - }); - } } - - bool _skipScrollJump(bool isLoadMore) => - !isLoadMore || emailIdsPresentation.length == 1; } \ No newline at end of file