TF-4229 Add isSelected && condition to non-RTL selectedIconWidget rendering to match RTL behavior.

This commit is contained in:
dab246
2026-01-07 16:35:07 +07:00
committed by Dat H. Pham
parent 916fee92c4
commit f9ff9ecde7
10 changed files with 22 additions and 23 deletions
@@ -23,10 +23,12 @@ mixin ProvisioningLabelScenarioMixin {
final accountId = dashboardController?.accountId.value; final accountId = dashboardController?.accountId.value;
final labelController = dashboardController?.labelController; final labelController = dashboardController?.labelController;
if (createLabelInteractor == null || accountId == null) { if (dashboardController == null ||
createLabelInteractor == null ||
accountId == null) {
log( log(
'ProvisioningLabelScenarioMixin::provisionLabels ' 'ProvisioningLabelScenarioMixin::provisionLabels '
'skipped: missing CreateNewLabelInteractor or accountId', 'skipped: missing dashboardController, CreateNewLabelInteractor, or accountId',
); );
return []; return [];
} }
@@ -76,6 +76,7 @@ class SearchEmailWithTagScenario extends BaseTestScenario
required String tagDisplayName, required String tagDisplayName,
required int emailCount, required int emailCount,
}) async { }) async {
// Emails provisioned by buildEmailsForLabel include the tag name in the subject
final listEmailTileWithTag = $.tester.widgetList<EmailTileBuilder>( final listEmailTileWithTag = $.tester.widgetList<EmailTileBuilder>(
$(EmailTileBuilder).which<EmailTileBuilder>((widget) => $(EmailTileBuilder).which<EmailTileBuilder>((widget) =>
widget.presentationEmail.subject?.contains(tagDisplayName) == true), widget.presentationEmail.subject?.contains(tagDisplayName) == true),
@@ -221,7 +221,7 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
child: Row( child: Row(
children: [ children: [
if (iconWidget != null) iconWidget, if (iconWidget != null) iconWidget,
if (!isArrangeRTL && selectedIconWidget != null) if (!isArrangeRTL && isSelected && selectedIconWidget != null)
Padding( Padding(
padding: const EdgeInsetsDirectional.only(end: 16), padding: const EdgeInsetsDirectional.only(end: 16),
child: selectedIconWidget, child: selectedIconWidget,
@@ -114,7 +114,7 @@ class CreateEmailRequest with EquatableMixin {
templateEmailId, templateEmailId,
answerForwardEmailId, answerForwardEmailId,
unsubscribeEmailId, unsubscribeEmailId,
references, messageId,
references, references,
emailSendingQueue, emailSendingQueue,
displayMode, displayMode,
@@ -262,15 +262,13 @@ class EmailView extends GetWidget<SingleEmailController> {
final isLabelAvailable = controller final isLabelAvailable = controller
.mailboxDashBoardController.isLabelAvailable; .mailboxDashBoardController.isLabelAvailable;
final labelController = final listLabels =
controller.mailboxDashBoardController.labelController; controller.mailboxDashBoardController.labelController.labels;
List<Label>? emailLabels; List<Label>? emailLabels;
if (isLabelAvailable) { if (isLabelAvailable) {
emailLabels = presentationEmail.getLabelList( emailLabels = presentationEmail.getLabelList(listLabels);
labelController.labels,
);
} }
return EmailSubjectWidget( return EmailSubjectWidget(
@@ -349,18 +349,14 @@ abstract class BaseMailboxView extends GetWidget<MailboxController>
Widget buildLabelsBar(BuildContext context, bool isDesktop) { Widget buildLabelsBar(BuildContext context, bool isDesktop) {
return Obx(() { return Obx(() {
final isLabelCapabilitySupported = controller final isLabelAvailable = controller
.mailboxDashBoardController .mailboxDashBoardController
.isLabelCapabilitySupported; .isLabelAvailable;
final labelController = final labelController =
controller.mailboxDashBoardController.labelController; controller.mailboxDashBoardController.labelController;
final isLabelSettingEnabled = labelController if (isLabelAvailable) {
.isLabelSettingEnabled
.isTrue;
if (isLabelCapabilitySupported && isLabelSettingEnabled) {
final accountId = controller.accountId; final accountId = controller.accountId;
final labelListExpandMode = labelController.labelListExpandMode.value; final labelListExpandMode = labelController.labelListExpandMode.value;
final countLabels = labelController.labels.length; final countLabels = labelController.labels.length;
@@ -2360,11 +2360,7 @@ class MailboxDashBoardController extends ReloadableController
_deleteFolderSearchFilter(); _deleteFolderSearchFilter();
break; break;
case QuickSearchFilter.starred: case QuickSearchFilter.starred:
deleteStarredSearchFilter();
break;
case QuickSearchFilter.unread: case QuickSearchFilter.unread:
deleteUnreadSearchFilter();
break;
case QuickSearchFilter.labels: case QuickSearchFilter.labels:
deleteQuickSearchFilter(filter: searchFilter); deleteQuickSearchFilter(filter: searchFilter);
break; break;
@@ -39,6 +39,12 @@ extension SelectSearchFilterActionExtension on MailboxDashBoardController {
case QuickSearchFilter.labels: case QuickSearchFilter.labels:
searchController.updateFilterEmail(labelOption: const None()); searchController.updateFilterEmail(labelOption: const None());
break; break;
case QuickSearchFilter.starred:
deleteStarredSearchFilter();
break;
case QuickSearchFilter.unread:
deleteUnreadSearchFilter();
break;
default: default:
break; break;
} }
@@ -151,8 +151,8 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
Operator.AND, Operator.AND,
hasKeyword.map((e) => EmailFilterCondition(hasKeyword: e)).toSet(), hasKeyword.map((e) => EmailFilterCondition(hasKeyword: e)).toSet(),
), ),
if (label != null) if (label?.keyword?.value != null)
EmailFilterCondition(hasKeyword: label!.keyword?.value), EmailFilterCondition(hasKeyword: label!.keyword!.value),
if (moreFilterCondition != null && moreFilterCondition.hasCondition) if (moreFilterCondition != null && moreFilterCondition.hasCondition)
moreFilterCondition moreFilterCondition
}; };
@@ -1,11 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/model/filter_filter.dart';
import 'package:tmail_ui_user/features/base/widget/default_field/default_autocomplete_input_field_widget.dart'; import 'package:tmail_ui_user/features/base/widget/default_field/default_autocomplete_input_field_widget.dart';
import 'package:tmail_ui_user/features/base/widget/default_field/default_button_arrow_down_field_with_tab_key_widget.dart'; import 'package:tmail_ui_user/features/base/widget/default_field/default_button_arrow_down_field_with_tab_key_widget.dart';
import 'package:tmail_ui_user/features/base/widget/default_field/default_date_drop_down_field_widget.dart'; import 'package:tmail_ui_user/features/base/widget/default_field/default_date_drop_down_field_widget.dart';
import 'package:tmail_ui_user/features/base/widget/default_field/default_input_field_with_tab_key_widget.dart'; import 'package:tmail_ui_user/features/base/widget/default_field/default_input_field_with_tab_key_widget.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
import 'package:tmail_ui_user/features/base/model/filter_filter.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/advanced_search/update_label_in_advanced_search_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/advanced_search/update_label_in_advanced_search_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/labels/handle_logic_label_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/labels/handle_logic_label_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';