TF-3881 Thread Detail Bottom sheet close when action

TF-3881 Thread Detail Unsubscribe context menu

TF-3881 Thread Detail Update date time format

TF-3881 Thread Detail Update sender receiver spacing

TF-3881 Thread Detail Add messageId and references to presentation email

TF-3881 Thread Detail Filter created email on refresh

TF-3881 Thread Detail Fix CI

TF-3881 Thread Detail Fix previous action throws out of index

TF-3881 Thread Detail Update sender receiver spacing

TF-3881 Thread Detail Adjust email actions when expanded

TF-3881 Thread Detail Adjust days ago received time

TF-3881 Thread Detail Fix debouncer when update setting

TF-3881 Thread Detail Adjust days ago received time

TF-3881 Thread Detail Adjust email actions when expanded

TF-3881 Thread Detail Hide next previous if not in range

TF-3881 Thread Detail Arrange more action according to text direction

TF-3881 Thread Detail Hide next previous if not in range

TF-3881 Thread Detail Fix move email on tablet
This commit is contained in:
DatDang
2025-07-18 10:34:08 +07:00
committed by Dat H. Pham
parent 51c5c7e13a
commit b3ce1f076c
20 changed files with 108 additions and 43 deletions
@@ -316,6 +316,7 @@ class EmailView extends GetWidget<SingleEmailController> {
),
isOnlyEmailInThread: controller.isOnlyEmailInThread,
)),
const SizedBox(height: 24),
Obx(() => MailUnsubscribedBanner(
presentationEmail: controller.currentEmail,
emailUnsubscribe: controller.emailUnsubscribe.value
@@ -597,6 +597,7 @@ class EmailActionReactor with MessageDialogActionMixin {
)
.toList(),
onContextMenuActionClick: (action) {
popBack();
handleEmailAction(presentationEmail, action.action);
},
);
@@ -264,15 +264,13 @@ class EmailViewAppBarWidget extends StatelessWidget {
}
return [
if (!isOnlyEmailInThread)
_getReplyButton(appLocalizations),
if (!isResponsiveMobile)
_getMoveEmailButton(appLocalizations),
_getReplyButton(appLocalizations),
if (isResponsiveDesktop) ...[
_getMoveEmailButton(appLocalizations),
_getMarkStarButton(appLocalizations),
_getDeleteButton(appLocalizations),
],
if (onMoreActionClick != null)
if (!isOnlyEmailInThread)
_getMoreButton(appLocalizations, isScreenWithShortestSide),
];
}
@@ -68,7 +68,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsetsDirectional.symmetric(horizontal: 16),
padding: const EdgeInsetsDirectional.symmetric(horizontal: 16, vertical: 4),
child: Row(
crossAxisAlignment: emailSelected.countRecipients > 0 && (showRecipients || responsiveUtils.isMobile(context))
? CrossAxisAlignment.start
@@ -151,7 +151,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
ReceivedTimeBuilder(
emailSelected: emailSelected,
padding: const EdgeInsetsDirectional.only(start: 8, top: 2),
showDaysAgo: _showDaysAgo(responsiveUtils.isMobile(context)),
showDaysAgo: _showDaysAgo(responsiveUtils.isDesktop(context)),
),
if (showUnreadVisualization &&
!emailSelected.hasRead &&
@@ -173,7 +173,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
ReceivedTimeBuilder(
emailSelected: emailSelected,
padding: const EdgeInsetsDirectional.only(start: 16, top: 2),
showDaysAgo: _showDaysAgo(responsiveUtils.isMobile(context)),
showDaysAgo: _showDaysAgo(responsiveUtils.isDesktop(context)),
),
if (isInsideThreadDetailView)
SizedBox(
@@ -218,7 +218,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
ReceivedTimeBuilder(
emailSelected: emailSelected,
padding: const EdgeInsetsDirectional.symmetric(vertical: 5),
showDaysAgo: _showDaysAgo(responsiveUtils.isMobile(context)),
showDaysAgo: _showDaysAgo(responsiveUtils.isDesktop(context)),
),
],
),
@@ -249,9 +249,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
emailSelected.emailInThreadStatus == EmailInThreadStatus.collapsed;
}
bool _showDaysAgo(bool isResponsiveMobile) {
return isInsideThreadDetailView &&
emailSelected.emailInThreadStatus == EmailInThreadStatus.collapsed &&
!isResponsiveMobile;
bool _showDaysAgo(bool isResponsiveDesktop) {
return isInsideThreadDetailView && isResponsiveDesktop;
}
}
@@ -53,6 +53,8 @@ class ReceivedTimeBuilder extends StatelessWidget {
if (from.isAfter(to)) return '';
final days = to.difference(from).inDays;
if (days >=7) return '';
return appLocalizations.daysAgo(days);
}
}