TF-3769 Enable toggle thread detail feature in setting
TF-3769 Thread Detail fallback to single email when get thread fails TF-3769 Thread Detail fix font height thread TF-3769 Thread Detail init with get status TF-3769 Thread Detail fix font height email receiver and sender TF-3769 Thread Detail refactor reset thread detail ui action UpdatedThreadDetailSettingAction TF-3769 Thread Detail refresh settings on app lifecycle changed TF-3769 Thread Detail fix font height email receiver and sender TF-3769 Thread Detail fix scroll view exception of single email TF-3769 Thread Detail refactor local setting TF-3769 Thread Detail optimize get cache setting TF-3769 Thread Detail fix font height email receiver TF-3769 Thread Detail refactor local setting cache TF-3769 Thread Detail fix font height email receiver and sender TF-3769 Thread Detail use CacheExceptionThrower for ManageAccountDataSourceImpl TF-3769 Thread Detail fix changing email in tablet view TF-3769 Thread Detail refresh on setting changed TF-3769 Thread Detail fix receiver alignments TF-3769 Thread Detail fix receiver alignments TF-3769 Thread Detail default setting enabled TF-3769 Thread Detail fix font style email receiver and sender TF-3769 Thread Detail fix toggle setting when responsive TF-3769 Thread Detail adjust receive time position when single email TF-3769 Thread Detail revert initializeThreadDetailEmails to void TF-3769 Thread Detail fix CI on initializeThreadDetailEmails test TF-3769 Thread Detail fix spacing email sender TF-3769 Thread Detail update receiver color mobile TF-3769 Thread Detail update collapsed preview letter spacing TF-3769 Thread Detail update receiver color mobile TF-3769 Thread Detail fix receive time position TF-3769 Thread Detail add mark read button mobile collapsed email TF-3769 Thread Detail fix font style email receiver and sender TF-3769 Thread Detail update collapsed preview font weight TF-3769 Thread Detail fix position email receiver and sender
This commit is contained in:
+7
-6
@@ -15,12 +15,6 @@ extension HandleGetEmailsByIdsSuccess on ThreadDetailController {
|
||||
|
||||
final selectedEmailId = mailboxDashBoardController.selectedEmail.value?.id;
|
||||
final isLoadMore = emailIdsPresentation.values.whereNotNull().isNotEmpty;
|
||||
final currentScrollPosition = scrollController?.position.pixels;
|
||||
final maxScrollExtent = scrollController?.position.maxScrollExtent;
|
||||
final currentBottomScrollPosition = currentScrollPosition != null
|
||||
&& maxScrollExtent != null
|
||||
? maxScrollExtent - currentScrollPosition
|
||||
: null;
|
||||
|
||||
for (var presentationEmail in success.presentationEmails) {
|
||||
if (presentationEmail.id == null) continue;
|
||||
@@ -47,6 +41,13 @@ extension HandleGetEmailsByIdsSuccess on ThreadDetailController {
|
||||
if (currentExpandedEmailIndex == -1 || firstLoadedMoreEmailIndex == -1) {
|
||||
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((_) {
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/thread_detail/domain/state/get_emails_by_ids_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread_detail/domain/state/get_thread_by_id_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
||||
|
||||
extension HandleGetThreadByIdFailure on ThreadDetailController {
|
||||
void handleGetThreadByIdFailure(GetThreadByIdFailure failure) {
|
||||
final selectedEmail = mailboxDashBoardController.selectedEmail.value;
|
||||
if (selectedEmail != null) {
|
||||
consumeState(Stream.value(Right(GetEmailsByIdsSuccess([selectedEmail]))));
|
||||
} else {
|
||||
showRetryToast(failure);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,13 @@ import 'package:tmail_ui_user/features/thread_detail/presentation/utils/thread_d
|
||||
|
||||
extension InitializeThreadDetailEmails on ThreadDetailController {
|
||||
void initializeThreadDetailEmails() {
|
||||
final threadDetailEnabled = isThreadDetailEnabled;
|
||||
final selectedEmail = mailboxDashBoardController.selectedEmail.value;
|
||||
if (!threadDetailEnabled && selectedEmail != null) {
|
||||
consumeState(Stream.value(Right(GetEmailsByIdsSuccess([selectedEmail]))));
|
||||
return;
|
||||
}
|
||||
|
||||
final emailIdsToLoadMetaData = ThreadDetailPresentationUtils.getFirstLoadEmailIds(
|
||||
emailIdsPresentation.keys.toList(),
|
||||
selectedEmailId: mailboxDashBoardController.selectedEmail.value?.id,
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
||||
|
||||
extension RefreshThreadDetailOnSettingChanged on ThreadDetailController {
|
||||
void refreshThreadDetailOnSettingChanged() {
|
||||
if (threadDetailWasEnabled != isThreadDetailEnabled) {
|
||||
threadDetailWasEnabled = isThreadDetailEnabled;
|
||||
mailboxDashBoardController.selectedEmail.refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user