remove searchQuery unnecessary paramter
This commit is contained in:
@@ -20,25 +20,27 @@ abstract class BaseMailboxDashBoardView extends GetWidget<MailboxDashBoardContro
|
|||||||
Widget buildQuickSearchFilterButton(
|
Widget buildQuickSearchFilterButton(
|
||||||
BuildContext context, QuickSearchFilter filter) {
|
BuildContext context, QuickSearchFilter filter) {
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
final isSelected = controller.searchController.checkQuickSearchFilterSelected(quickSearchFilter: filter);
|
final isQuickSearchFilterSelected = controller.checkQuickSearchFilterSelected(
|
||||||
|
quickSearchFilter: filter,
|
||||||
|
);
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: filter.getBackgroundColor(isSelected)),
|
color: filter.getBackgroundColor(quickSearchFilterSelected: isQuickSearchFilterSelected)),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||||
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||||
SvgPicture.asset(
|
SvgPicture.asset(
|
||||||
filter.getIcon(imagePaths, isSelected),
|
filter.getIcon(imagePaths, quickSearchFilterSelected: isQuickSearchFilterSelected),
|
||||||
width: 16,
|
width: 16,
|
||||||
height: 16,
|
height: 16,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
filter.getTitle(context, receiveTimeType: controller.emailReceiveTimeType.value),
|
filter.getTitle(context, receiveTimeType: controller.searchController.emailReceiveTimeType.value),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: filter.getTextStyle(isSelected),
|
style: filter.getTextStyle(quickSearchFilterSelected: isQuickSearchFilterSelected),
|
||||||
)
|
)
|
||||||
]));
|
]));
|
||||||
});
|
});
|
||||||
|
|||||||
+27
-7
@@ -39,7 +39,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.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/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
@@ -76,7 +76,6 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
final currentSelectMode = SelectMode.INACTIVE.obs;
|
final currentSelectMode = SelectMode.INACTIVE.obs;
|
||||||
final filterMessageOption = FilterMessageOption.all.obs;
|
final filterMessageOption = FilterMessageOption.all.obs;
|
||||||
final listEmailSelected = <PresentationEmail>[].obs;
|
final listEmailSelected = <PresentationEmail>[].obs;
|
||||||
final emailReceiveTimeType = Rxn<EmailReceiveTimeType>();
|
|
||||||
final composerOverlayState = ComposerOverlayState.inActive.obs;
|
final composerOverlayState = ComposerOverlayState.inActive.obs;
|
||||||
|
|
||||||
Session? sessionCurrent;
|
Session? sessionCurrent;
|
||||||
@@ -265,12 +264,17 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
|
|
||||||
bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE;
|
bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE;
|
||||||
|
|
||||||
void searchEmail(BuildContext context) {
|
void searchEmail(BuildContext context, String value) {
|
||||||
|
searchController.updateFilterEmail(text: SearchQuery(value));
|
||||||
dispatchState(Right(SearchEmailNewQuery(searchController.searchEmailFilter.value.text ?? SearchQuery.initial())));
|
dispatchState(Right(SearchEmailNewQuery(searchController.searchEmailFilter.value.text ?? SearchQuery.initial())));
|
||||||
FocusScope.of(context).unfocus();
|
FocusScope.of(context).unfocus();
|
||||||
if (_searchInsideEmailDetailedViewIsActive(context)) {
|
if (_searchInsideEmailDetailedViewIsActive(context)) {
|
||||||
_closeEmailDetailedView();
|
_closeEmailDetailedView();
|
||||||
}
|
}
|
||||||
|
if (value.isEmpty){
|
||||||
|
searchController.disableSearch();
|
||||||
|
searchController.setEmailReceiveTimeType(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _searchInsideEmailDetailedViewIsActive(BuildContext context) {
|
bool _searchInsideEmailDetailedViewIsActive(BuildContext context) {
|
||||||
@@ -392,10 +396,6 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setEmailReceiveTimeType(EmailReceiveTimeType? receiveTimeType) {
|
|
||||||
emailReceiveTimeType.value = receiveTimeType;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool filterMessageWithAttachmentIsActive () {
|
bool filterMessageWithAttachmentIsActive () {
|
||||||
return filterMessageOption.value == FilterMessageOption.attachments;
|
return filterMessageOption.value == FilterMessageOption.attachments;
|
||||||
}
|
}
|
||||||
@@ -455,6 +455,26 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
arguments: ManageAccountArguments(sessionCurrent));
|
arguments: ManageAccountArguments(sessionCurrent));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void selectQuickSearchFilter({
|
||||||
|
required QuickSearchFilter quickSearchFilter,
|
||||||
|
bool fromSuggestionBox = false,
|
||||||
|
}) => searchController.selectQuickSearchFilter(
|
||||||
|
quickSearchFilter: quickSearchFilter,
|
||||||
|
userProfile: userProfile.value!,
|
||||||
|
fromSuggestionBox: fromSuggestionBox,
|
||||||
|
);
|
||||||
|
|
||||||
|
bool checkQuickSearchFilterSelected({
|
||||||
|
required QuickSearchFilter quickSearchFilter,
|
||||||
|
bool fromSuggestionBox = false,
|
||||||
|
}) => searchController.checkQuickSearchFilterSelected(
|
||||||
|
quickSearchFilter: quickSearchFilter,
|
||||||
|
userProfile: userProfile.value!,
|
||||||
|
fromSuggestionBox: fromSuggestionBox,
|
||||||
|
);
|
||||||
|
|
||||||
|
Future<List<PresentationEmail>> quickSearchEmails() => searchController.quickSearchEmails(accountId: accountId.value!);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
_emailReceiveManager.closeEmailReceiveManagerStream();
|
_emailReceiveManager.closeEmailReceiveManagerStream();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'dart:async';
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
||||||
@@ -15,7 +16,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/quick_sear
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.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';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
|
||||||
@@ -29,8 +29,6 @@ class SearchController extends BaseController {
|
|||||||
final SaveRecentSearchInteractor _saveRecentSearchInteractor;
|
final SaveRecentSearchInteractor _saveRecentSearchInteractor;
|
||||||
final GetAllRecentSearchLatestInteractor _getAllRecentSearchLatestInteractor;
|
final GetAllRecentSearchLatestInteractor _getAllRecentSearchLatestInteractor;
|
||||||
|
|
||||||
final _mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
|
||||||
|
|
||||||
final searchInputController = TextEditingController();
|
final searchInputController = TextEditingController();
|
||||||
final searchEmailFilter = SearchEmailFilter().obs;
|
final searchEmailFilter = SearchEmailFilter().obs;
|
||||||
final searchState = SearchState.initial().obs;
|
final searchState = SearchState.initial().obs;
|
||||||
@@ -38,15 +36,11 @@ class SearchController extends BaseController {
|
|||||||
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
|
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
|
||||||
final mailboxFilterSelectedFormAdvancedSearch = Rxn<PresentationMailbox>();
|
final mailboxFilterSelectedFormAdvancedSearch = Rxn<PresentationMailbox>();
|
||||||
final hasAttachment = false.obs;
|
final hasAttachment = false.obs;
|
||||||
|
final emailReceiveTimeType = Rxn<EmailReceiveTimeType>();
|
||||||
get _accountId => _mailboxDashBoardController.accountId;
|
|
||||||
|
|
||||||
get _userProfile => _mailboxDashBoardController.userProfile;
|
|
||||||
|
|
||||||
get searchEmailFilterValue => searchEmailFilter.value;
|
get searchEmailFilterValue => searchEmailFilter.value;
|
||||||
|
|
||||||
FocusNode searchFocus = FocusNode();
|
FocusNode searchFocus = FocusNode();
|
||||||
SearchQuery? searchQuery;
|
|
||||||
|
|
||||||
SearchController(
|
SearchController(
|
||||||
this._quickSearchEmailInteractor,
|
this._quickSearchEmailInteractor,
|
||||||
@@ -70,32 +64,40 @@ class SearchController extends BaseController {
|
|||||||
|
|
||||||
void selectQuickSearchFilter({
|
void selectQuickSearchFilter({
|
||||||
required QuickSearchFilter quickSearchFilter,
|
required QuickSearchFilter quickSearchFilter,
|
||||||
|
required UserProfile userProfile,
|
||||||
bool fromSuggestionBox = false,
|
bool fromSuggestionBox = false,
|
||||||
}) {
|
}) {
|
||||||
final quickSearchFilterSelected = checkQuickSearchFilterSelected(quickSearchFilter: quickSearchFilter, fromSuggestionBox: fromSuggestionBox);
|
final quickSearchFilterSelected = checkQuickSearchFilterSelected(
|
||||||
|
userProfile: userProfile,
|
||||||
|
quickSearchFilter: quickSearchFilter,
|
||||||
|
fromSuggestionBox: fromSuggestionBox,
|
||||||
|
);
|
||||||
|
|
||||||
switch (quickSearchFilter) {
|
switch (quickSearchFilter) {
|
||||||
case QuickSearchFilter.hasAttachment:
|
case QuickSearchFilter.hasAttachment:
|
||||||
updateFilterEmail(hasAttachment: !quickSearchFilterSelected);
|
updateFilterEmail(hasAttachment: !quickSearchFilterSelected);
|
||||||
return;
|
return;
|
||||||
case QuickSearchFilter.last7Days:
|
case QuickSearchFilter.last7Days:
|
||||||
final EmailReceiveTimeType? emailReceiveTimeType = quickSearchFilterSelected
|
if (quickSearchFilterSelected) {
|
||||||
? EmailReceiveTimeType.allTime
|
setEmailReceiveTimeType(null);
|
||||||
: EmailReceiveTimeType.last7Days;
|
updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.allTime);
|
||||||
updateFilterEmail(emailReceiveTimeType: emailReceiveTimeType);
|
} else {
|
||||||
|
setEmailReceiveTimeType(EmailReceiveTimeType.last7Days);
|
||||||
|
updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.last7Days);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
case QuickSearchFilter.fromMe:
|
case QuickSearchFilter.fromMe:
|
||||||
quickSearchFilterSelected
|
quickSearchFilterSelected
|
||||||
? searchEmailFilter.value.from.remove(_userProfile.email)
|
? searchEmailFilter.value.from.remove(userProfile.email)
|
||||||
: searchEmailFilter.value.from.add(_userProfile.email);
|
: searchEmailFilter.value.from.add(userProfile.email);
|
||||||
updateFilterEmail(from: searchEmailFilter.value.from);
|
updateFilterEmail(from: searchEmailFilter.value.from);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<PresentationEmail>> quickSearchEmails() async {
|
Future<List<PresentationEmail>> quickSearchEmails({required AccountId accountId}) async {
|
||||||
return await _quickSearchEmailInteractor
|
return await _quickSearchEmailInteractor
|
||||||
.execute(_accountId,
|
.execute(accountId,
|
||||||
limit: UnsignedInt(5),
|
limit: UnsignedInt(5),
|
||||||
sort: <Comparator>{}..add(
|
sort: <Comparator>{}..add(
|
||||||
EmailComparator(EmailComparatorProperty.receivedAt)
|
EmailComparator(EmailComparatorProperty.receivedAt)
|
||||||
@@ -176,17 +178,21 @@ class SearchController extends BaseController {
|
|||||||
searchInputController.text = value;
|
searchInputController.text = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool checkQuickSearchFilterSelected({required QuickSearchFilter quickSearchFilter, bool fromSuggestionBox = false}) {
|
bool checkQuickSearchFilterSelected({
|
||||||
|
required QuickSearchFilter quickSearchFilter,
|
||||||
|
required UserProfile userProfile,
|
||||||
|
bool fromSuggestionBox = false,
|
||||||
|
}) {
|
||||||
switch (quickSearchFilter) {
|
switch (quickSearchFilter) {
|
||||||
case QuickSearchFilter.hasAttachment:
|
case QuickSearchFilter.hasAttachment:
|
||||||
return searchEmailFilter.value.hasAttachment == true;
|
return searchEmailFilter.value.hasAttachment == true;
|
||||||
case QuickSearchFilter.last7Days:
|
case QuickSearchFilter.last7Days:
|
||||||
if (fromSuggestionBox) {
|
if (emailReceiveTimeType.value != null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return searchEmailFilter.value.emailReceiveTimeType == EmailReceiveTimeType.last7Days;
|
return searchEmailFilter.value.emailReceiveTimeType == EmailReceiveTimeType.last7Days;
|
||||||
case QuickSearchFilter.fromMe:
|
case QuickSearchFilter.fromMe:
|
||||||
return searchEmailFilter.value.from.contains(_userProfile.email) && searchEmailFilter.value.from.length == 1;
|
return searchEmailFilter.value.from.contains(userProfile.email) && searchEmailFilter.value.from.length == 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,12 +201,17 @@ class SearchController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<List<RecentSearch>> getAllRecentSearchAction(String pattern) async {
|
Future<List<RecentSearch>> getAllRecentSearchAction(String pattern) async {
|
||||||
return await _getAllRecentSearchLatestInteractor.execute(pattern: pattern)
|
return await _getAllRecentSearchLatestInteractor
|
||||||
|
.execute(pattern: pattern)
|
||||||
.then((result) => result.fold(
|
.then((result) => result.fold(
|
||||||
(failure) => <RecentSearch>[],
|
(failure) => <RecentSearch>[],
|
||||||
(success) => success is GetAllRecentSearchLatestSuccess
|
(success) => success is GetAllRecentSearchLatestSuccess
|
||||||
? success.listRecentSearch
|
? success.listRecentSearch
|
||||||
: <RecentSearch>[]));
|
: <RecentSearch>[]));
|
||||||
|
}
|
||||||
|
|
||||||
|
void setEmailReceiveTimeType(EmailReceiveTimeType? receiveTimeType) {
|
||||||
|
emailReceiveTimeType.value = receiveTimeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dar
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/email_quick_search_item_tile_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/email_quick_search_item_tile_widget.dart';
|
||||||
@@ -25,6 +26,8 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
|
|
||||||
MailboxDashBoardView({Key? key}) : super(key: key);
|
MailboxDashBoardView({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
final SearchController searchController = Get.find<SearchController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (controller.isDrawerOpen && (responsiveUtils.isDesktop(context)
|
if (controller.isDrawerOpen && (responsiveUtils.isDesktop(context)
|
||||||
@@ -150,21 +153,21 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
if (controller.isSelectionEnabled()) {
|
if (controller.isSelectionEnabled()) {
|
||||||
return _buildListButtonTopBarSelection(context);
|
return _buildListButtonTopBarSelection(context);
|
||||||
} else {
|
} else {
|
||||||
return controller.searchController.isSearchActive()
|
return searchController.isSearchActive()
|
||||||
? _buildListButtonTopBarSearchActive(context)
|
? _buildListButtonTopBarSearchActive(context)
|
||||||
: _buildListButtonTopBar(context);
|
: _buildListButtonTopBar(context);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
Obx(() => !controller.searchController.isSearchActive() ? const Spacer() : const SizedBox.shrink()),
|
Obx(() => !searchController.isSearchActive() ? const Spacer() : const SizedBox.shrink()),
|
||||||
Obx(() => controller.searchController.isSearchActive()
|
Obx(() => searchController.isSearchActive()
|
||||||
? Expanded(child: _buildSearchForm(context))
|
? Expanded(child: _buildSearchForm(context))
|
||||||
: (SearchBarView(imagePaths)
|
: (SearchBarView(imagePaths)
|
||||||
..hintTextSearch(AppLocalizations.of(context).search_emails)
|
..hintTextSearch(AppLocalizations.of(context).search_emails)
|
||||||
..maxSizeWidth(240)
|
..maxSizeWidth(240)
|
||||||
..addOnOpenSearchViewAction(() => controller.searchController.enableSearch()))
|
..addOnOpenSearchViewAction(() => searchController.enableSearch()))
|
||||||
.build()),
|
.build()),
|
||||||
Obx(() => !controller.searchController.isSearchActive() ? const SizedBox(width: 16) : const SizedBox.shrink()),
|
Obx(() => !searchController.isSearchActive() ? const SizedBox(width: 16) : const SizedBox.shrink()),
|
||||||
Obx(() => (AvatarBuilder()
|
Obx(() => (AvatarBuilder()
|
||||||
..text(controller.userProfile.value?.getAvatarText() ?? '')
|
..text(controller.userProfile.value?.getAvatarText() ?? '')
|
||||||
..backgroundColor(Colors.white)
|
..backgroundColor(Colors.white)
|
||||||
@@ -410,19 +413,19 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
height: 45,
|
height: 45,
|
||||||
child: QuickSearchInputForm<PresentationEmail, RecentSearch>(
|
child: QuickSearchInputForm<PresentationEmail, RecentSearch>(
|
||||||
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
||||||
controller: controller.searchController.searchInputController,
|
controller: searchController.searchInputController,
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
focusNode: controller.searchController.searchFocus,
|
focusNode: searchController.searchFocus,
|
||||||
textInputAction: TextInputAction.done,
|
textInputAction: TextInputAction.done,
|
||||||
onSubmitted: (keyword) {
|
onSubmitted: (keyword) {
|
||||||
if (keyword.trim().isNotEmpty) {
|
if (keyword.trim().isNotEmpty) {
|
||||||
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
searchController.saveRecentSearch(RecentSearch.now(keyword));
|
||||||
}
|
}
|
||||||
controller.searchEmail(context);
|
controller.searchEmail(context, keyword);
|
||||||
},
|
},
|
||||||
onChanged: (query) {
|
onChanged: (query) {
|
||||||
log('MailboxDashBoardView::_buildSearchForm(): onChanged: $query');
|
log('MailboxDashBoardView::_buildSearchForm(): onChanged: $query');
|
||||||
controller.searchController.onChangeTextSearch(query);
|
searchController.onChangeTextSearch(query);
|
||||||
},
|
},
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
@@ -444,11 +447,11 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
height: 16,
|
height: 16,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final keyword = controller.searchController.searchInputController.text;
|
final keyword = searchController.searchInputController.text;
|
||||||
if (keyword.trim().isNotEmpty) {
|
if (keyword.trim().isNotEmpty) {
|
||||||
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
searchController.saveRecentSearch(RecentSearch.now(keyword));
|
||||||
}
|
}
|
||||||
controller.searchEmail(context);
|
controller.searchEmail(context, keyword);
|
||||||
}),
|
}),
|
||||||
clearTextButton: buildIconWeb(
|
clearTextButton: buildIconWeb(
|
||||||
icon: SvgPicture.asset(
|
icon: SvgPicture.asset(
|
||||||
@@ -457,7 +460,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
height: 16,
|
height: 16,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
controller.searchController.clearTextSearch();
|
searchController.clearTextSearch();
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
suggestionsBoxDecoration: QuickSearchSuggestionsBoxDecoration(
|
suggestionsBoxDecoration: QuickSearchSuggestionsBoxDecoration(
|
||||||
@@ -482,9 +485,10 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
},
|
},
|
||||||
buttonActionCallback: (filterAction) {
|
buttonActionCallback: (filterAction) {
|
||||||
if (filterAction is QuickSearchFilter) {
|
if (filterAction is QuickSearchFilter) {
|
||||||
controller.searchController.selectQuickSearchFilter(
|
controller.selectQuickSearchFilter(
|
||||||
quickSearchFilter: filterAction,
|
quickSearchFilter: filterAction,
|
||||||
fromSuggestionBox: true);
|
fromSuggestionBox: true,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
listActionPadding: const EdgeInsets.only(
|
listActionPadding: const EdgeInsets.only(
|
||||||
@@ -505,9 +509,9 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (keyword.trim().isNotEmpty) {
|
if (keyword.trim().isNotEmpty) {
|
||||||
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
searchController.saveRecentSearch(RecentSearch.now(keyword));
|
||||||
}
|
}
|
||||||
controller.searchEmail(context);
|
controller.searchEmail(context, keyword);
|
||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
@@ -537,17 +541,17 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
child: loadingWidget,
|
child: loadingWidget,
|
||||||
),
|
),
|
||||||
fetchRecentActionCallback: (pattern) async {
|
fetchRecentActionCallback: (pattern) async {
|
||||||
return controller.searchController.getAllRecentSearchAction(pattern);
|
return searchController.getAllRecentSearchAction(pattern);
|
||||||
},
|
},
|
||||||
itemRecentBuilder: (context, recent) {
|
itemRecentBuilder: (context, recent) {
|
||||||
return RecentSearchItemTileWidget(recent);
|
return RecentSearchItemTileWidget(recent);
|
||||||
},
|
},
|
||||||
onRecentSelected: (recent) {
|
onRecentSelected: (recent) {
|
||||||
controller.searchController.searchInputController.text = recent.value;
|
searchController.searchInputController.text = recent.value;
|
||||||
controller.searchEmail(context);
|
controller.searchEmail(context, recent.value);
|
||||||
},
|
},
|
||||||
suggestionsCallback: (pattern) async {
|
suggestionsCallback: (pattern) async {
|
||||||
return controller.searchController.quickSearchEmails();
|
return controller.quickSearchEmails();
|
||||||
},
|
},
|
||||||
itemBuilder: (context, email) {
|
itemBuilder: (context, email) {
|
||||||
return EmailQuickSearchItemTileWidget(
|
return EmailQuickSearchItemTileWidget(
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ enum EmailReceiveTimeType {
|
|||||||
String getTitle(BuildContext context) {
|
String getTitle(BuildContext context) {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
case EmailReceiveTimeType.allTime:
|
case EmailReceiveTimeType.allTime:
|
||||||
return AppLocalizations.of(context).anyTime;
|
return AppLocalizations.of(context).allTime;
|
||||||
case EmailReceiveTimeType.last7Days:
|
case EmailReceiveTimeType.last7Days:
|
||||||
return AppLocalizations.of(context).last7Days;
|
return AppLocalizations.of(context).last7Days;
|
||||||
case EmailReceiveTimeType.last30Days:
|
case EmailReceiveTimeType.last30Days:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ enum QuickSearchFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String getIcon(ImagePaths imagePaths, bool quickSearchFilterSelected) {
|
String getIcon(ImagePaths imagePaths, {required bool quickSearchFilterSelected}) {
|
||||||
|
|
||||||
if (quickSearchFilterSelected) {
|
if (quickSearchFilterSelected) {
|
||||||
return imagePaths.icSelectedSB;
|
return imagePaths.icSelectedSB;
|
||||||
@@ -39,7 +39,7 @@ enum QuickSearchFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Color getBackgroundColor(bool quickSearchFilterSelected) {
|
Color getBackgroundColor({required bool quickSearchFilterSelected}) {
|
||||||
|
|
||||||
if (quickSearchFilterSelected) {
|
if (quickSearchFilterSelected) {
|
||||||
return AppColor.colorItemEmailSelectedDesktop;
|
return AppColor.colorItemEmailSelectedDesktop;
|
||||||
@@ -48,7 +48,7 @@ enum QuickSearchFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextStyle getTextStyle(bool quickSearchFilterSelected) {
|
TextStyle getTextStyle({required bool quickSearchFilterSelected}) {
|
||||||
|
|
||||||
if (quickSearchFilterSelected) {
|
if (quickSearchFilterSelected) {
|
||||||
return const TextStyle(
|
return const TextStyle(
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@@ -106,8 +105,6 @@ class ThreadController extends BaseController {
|
|||||||
final ScrollController listEmailController = ScrollController();
|
final ScrollController listEmailController = ScrollController();
|
||||||
late Worker mailboxWorker, searchWorker, dashboardActionWorker, viewStateWorker;
|
late Worker mailboxWorker, searchWorker, dashboardActionWorker, viewStateWorker;
|
||||||
|
|
||||||
SearchQuery? get searchQuery => searchController.searchQuery;
|
|
||||||
|
|
||||||
Set<Comparator>? get _sortOrder => <Comparator>{}
|
Set<Comparator>? get _sortOrder => <Comparator>{}
|
||||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||||
..setIsAscending(false));
|
..setIsAscending(false));
|
||||||
@@ -122,6 +119,8 @@ class ThreadController extends BaseController {
|
|||||||
|
|
||||||
String get currentTextSearch => searchController.searchInputController.text;
|
String get currentTextSearch => searchController.searchInputController.text;
|
||||||
|
|
||||||
|
SearchQuery? get searchQuery => searchController.searchEmailFilter.value.text;
|
||||||
|
|
||||||
ThreadController(
|
ThreadController(
|
||||||
this._getEmailsInMailboxInteractor,
|
this._getEmailsInMailboxInteractor,
|
||||||
this._markAsMultipleEmailReadInteractor,
|
this._markAsMultipleEmailReadInteractor,
|
||||||
@@ -1206,7 +1205,9 @@ class ThreadController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void selectQuickSearchFilter(QuickSearchFilter filter) {
|
void selectQuickSearchFilter(QuickSearchFilter filter) {
|
||||||
searchController.selectQuickSearchFilter(quickSearchFilter: filter);
|
mailboxDashBoardController.selectQuickSearchFilter(
|
||||||
|
quickSearchFilter: filter,
|
||||||
|
);
|
||||||
_searchEmail();
|
_searchEmail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1220,8 +1221,16 @@ class ThreadController extends BaseController {
|
|||||||
void selectReceiveTimeQuickSearchFilter(EmailReceiveTimeType? emailReceiveTimeType) {
|
void selectReceiveTimeQuickSearchFilter(EmailReceiveTimeType? emailReceiveTimeType) {
|
||||||
popBack();
|
popBack();
|
||||||
|
|
||||||
searchController.updateFilterEmail(emailReceiveTimeType: emailReceiveTimeType);
|
if (emailReceiveTimeType != null) {
|
||||||
|
searchController.updateFilterEmail(emailReceiveTimeType: emailReceiveTimeType);
|
||||||
|
} else {
|
||||||
|
searchController.updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.allTime);
|
||||||
|
}
|
||||||
|
searchController.setEmailReceiveTimeType(emailReceiveTimeType);
|
||||||
|
searchController.updateFilterEmail();
|
||||||
|
if(searchQuery == null){
|
||||||
|
searchController.updateFilterEmail(text: SearchQuery.initial());
|
||||||
|
}
|
||||||
_searchEmail();
|
_searchEmail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
if (keyword.trim().isNotEmpty) {
|
if (keyword.trim().isNotEmpty) {
|
||||||
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
||||||
}
|
}
|
||||||
controller.mailboxDashBoardController.searchEmail(context);
|
controller.mailboxDashBoardController.searchEmail(context, keyword);
|
||||||
},
|
},
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
@@ -216,7 +216,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
if (keyword.trim().isNotEmpty) {
|
if (keyword.trim().isNotEmpty) {
|
||||||
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
||||||
}
|
}
|
||||||
controller.mailboxDashBoardController.searchEmail(context);
|
controller.mailboxDashBoardController.searchEmail(context, keyword);
|
||||||
}),
|
}),
|
||||||
clearTextButton: buildIconWeb(
|
clearTextButton: buildIconWeb(
|
||||||
icon: SvgPicture.asset(
|
icon: SvgPicture.asset(
|
||||||
@@ -249,7 +249,10 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
},
|
},
|
||||||
buttonActionCallback: (filterAction) {
|
buttonActionCallback: (filterAction) {
|
||||||
if (filterAction is QuickSearchFilter) {
|
if (filterAction is QuickSearchFilter) {
|
||||||
controller.searchController.selectQuickSearchFilter(quickSearchFilter: filterAction, fromSuggestionBox: true);
|
controller.mailboxDashBoardController.selectQuickSearchFilter(
|
||||||
|
quickSearchFilter: filterAction,
|
||||||
|
fromSuggestionBox: true,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
listActionPadding: const EdgeInsets.only(
|
listActionPadding: const EdgeInsets.only(
|
||||||
@@ -272,7 +275,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
if (keyword.trim().isNotEmpty) {
|
if (keyword.trim().isNotEmpty) {
|
||||||
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
controller.searchController.saveRecentSearch(RecentSearch.now(keyword));
|
||||||
}
|
}
|
||||||
controller.mailboxDashBoardController.searchEmail(context);
|
controller.mailboxDashBoardController.searchEmail(context, keyword);
|
||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
|
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
|
||||||
@@ -307,10 +310,10 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
},
|
},
|
||||||
onRecentSelected: (recent) {
|
onRecentSelected: (recent) {
|
||||||
controller.searchController.updateTextSearch(recent.value);
|
controller.searchController.updateTextSearch(recent.value);
|
||||||
controller.mailboxDashBoardController.searchEmail(context);
|
controller.mailboxDashBoardController.searchEmail(context, recent.value);
|
||||||
},
|
},
|
||||||
suggestionsCallback: (pattern) async {
|
suggestionsCallback: (pattern) async {
|
||||||
return controller.searchController.quickSearchEmails();
|
return controller.mailboxDashBoardController.quickSearchEmails();
|
||||||
},
|
},
|
||||||
itemBuilder: (context, email) {
|
itemBuilder: (context, email) {
|
||||||
return EmailQuickSearchItemTileWidget(
|
return EmailQuickSearchItemTileWidget(
|
||||||
@@ -516,7 +519,8 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
controller.currentMailbox?.role,
|
controller.currentMailbox?.role,
|
||||||
controller.mailboxDashBoardController.currentSelectMode.value,
|
controller.mailboxDashBoardController.currentSelectMode.value,
|
||||||
controller.searchController.searchState.value.searchStatus,
|
controller.searchController.searchState.value.searchStatus,
|
||||||
controller.searchQuery)
|
controller.searchQuery,
|
||||||
|
)
|
||||||
..addOnPressEmailActionClick((action, email) => controller.pressEmailAction(context, action, email))
|
..addOnPressEmailActionClick((action, email) => controller.pressEmailAction(context, action, email))
|
||||||
..addOnMoreActionClick((email, position) => _responsiveUtils.isMobile(context)
|
..addOnMoreActionClick((email, position) => _responsiveUtils.isMobile(context)
|
||||||
? controller.openContextMenuAction(context, _contextMenuActionTile(context, email))
|
? controller.openContextMenuAction(context, _contextMenuActionTile(context, email))
|
||||||
@@ -638,7 +642,9 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
Widget _buildQuickSearchFilterButton(
|
Widget _buildQuickSearchFilterButton(
|
||||||
BuildContext context, QuickSearchFilter filter) {
|
BuildContext context, QuickSearchFilter filter) {
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
final quickSearchFilterSelected = controller.searchController.checkQuickSearchFilterSelected(quickSearchFilter: filter);
|
final quickSearchFilterSelected = controller.mailboxDashBoardController.checkQuickSearchFilterSelected(
|
||||||
|
quickSearchFilter: filter,
|
||||||
|
);
|
||||||
|
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.only(right: 8),
|
padding: const EdgeInsets.only(right: 8),
|
||||||
@@ -660,7 +666,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
);
|
);
|
||||||
controller.openPopupReceiveTimeQuickSearchFilter(context, position,
|
controller.openPopupReceiveTimeQuickSearchFilter(context, position,
|
||||||
popupMenuEmailReceiveTimeType(context,
|
popupMenuEmailReceiveTimeType(context,
|
||||||
controller.mailboxDashBoardController.emailReceiveTimeType.value,
|
controller.searchController.emailReceiveTimeType.value,
|
||||||
(receiveTime) => controller.selectReceiveTimeQuickSearchFilter(receiveTime)));
|
(receiveTime) => controller.selectReceiveTimeQuickSearchFilter(receiveTime)));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -668,20 +674,20 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: filter.getBackgroundColor(quickSearchFilterSelected)),
|
color: filter.getBackgroundColor(quickSearchFilterSelected: quickSearchFilterSelected)),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||||
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||||
SvgPicture.asset(
|
SvgPicture.asset(
|
||||||
filter.getIcon(_imagePaths, quickSearchFilterSelected),
|
filter.getIcon(_imagePaths, quickSearchFilterSelected: quickSearchFilterSelected),
|
||||||
width: 16,
|
width: 16,
|
||||||
height: 16,
|
height: 16,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
filter.getTitle(context, receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value),
|
filter.getTitle(context, receiveTimeType: controller.searchController.emailReceiveTimeType.value),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: filter.getTextStyle(quickSearchFilterSelected),
|
style: filter.getTextStyle(quickSearchFilterSelected: quickSearchFilterSelected),
|
||||||
),
|
),
|
||||||
if (filter == QuickSearchFilter.last7Days)
|
if (filter == QuickSearchFilter.last7Days)
|
||||||
... [
|
... [
|
||||||
@@ -738,25 +744,27 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
Widget _buildQuickSearchFilterButtonSuggestionBox(
|
Widget _buildQuickSearchFilterButtonSuggestionBox(
|
||||||
BuildContext context, QuickSearchFilter filter) {
|
BuildContext context, QuickSearchFilter filter) {
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
final quickSearchFilterSelected = controller.searchController.checkQuickSearchFilterSelected(quickSearchFilter: filter);
|
final quickSearchFilterSelected = controller.mailboxDashBoardController.checkQuickSearchFilterSelected(
|
||||||
|
quickSearchFilter: filter,
|
||||||
|
);
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: filter.getBackgroundColor(quickSearchFilterSelected)),
|
color: filter.getBackgroundColor(quickSearchFilterSelected: quickSearchFilterSelected)),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||||
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||||
SvgPicture.asset(
|
SvgPicture.asset(
|
||||||
filter.getIcon(_imagePaths, quickSearchFilterSelected),
|
filter.getIcon(_imagePaths, quickSearchFilterSelected: quickSearchFilterSelected),
|
||||||
width: 16,
|
width: 16,
|
||||||
height: 16,
|
height: 16,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
filter.getTitle(context, receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value),
|
filter.getTitle(context),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: filter.getTextStyle(quickSearchFilterSelected),
|
style: filter.getTextStyle(quickSearchFilterSelected: quickSearchFilterSelected),
|
||||||
)
|
)
|
||||||
]));
|
]));
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user