create advanced search mobile UI

This commit is contained in:
ManhNT
2022-06-25 23:14:29 +07:00
committed by Dat H. Pham
parent 298e0e2e8b
commit e5977aa0da
15 changed files with 496 additions and 17 deletions
@@ -36,7 +36,27 @@ class AdvancedFilterController extends BaseController {
_searchController.cleanSearchFilter();
}
void _updateFilterEmailFromAdvancedSearchView() {
if (fromFilterInputController.text.isNotEmpty) {
_searchEmailFilter.from.add(fromFilterInputController.text);
}
if (toFilterInputController.text.isNotEmpty) {
_searchEmailFilter.to.add(toFilterInputController.text);
}
_searchController.searchEmailFilter.value = _searchEmailFilter.copyWith(
subject: StringConvert.writeEmptyToNull(subjectFilterInputController.text),
hasKeyword: Wrapped.value(
StringConvert.writeEmptyToNull(hasKeyWordFilterInputController.text)),
notKeyword: Wrapped.value(
StringConvert.writeNullToEmpty(notKeyWordFilterInputController.text)),
mailbox: mailboxFilterSelectedFormAdvancedSearch.value,
emailReceiveTimeType: dateFilterSelectedFormAdvancedSearch.value,
hasAttachment: hasAttachment.value,
);
}
applyAdvancedSearchFilter(BuildContext context){
_updateFilterEmailFromAdvancedSearchView();
_mailboxDashBoardController.searchEmail(context, StringConvert.writeNullToEmpty(_searchEmailFilter.text?.value));
}
@@ -19,6 +19,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_re
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/search_email_filter.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_bottom_sheet.dart';
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/search_state.dart';
@@ -29,6 +30,8 @@ class SearchController extends BaseController {
final SaveRecentSearchInteractor _saveRecentSearchInteractor;
final GetAllRecentSearchLatestInteractor _getAllRecentSearchLatestInteractor;
final ResponsiveUtils _responsiveUtils = Get.find<ResponsiveUtils>();
final searchInputController = TextEditingController();
final searchEmailFilter = SearchEmailFilter().obs;
final searchState = SearchState.initial().obs;
@@ -216,6 +219,14 @@ class SearchController extends BaseController {
emailReceiveTimeType.value = receiveTimeType;
}
showAdvancedFilterView(BuildContext context) async {
selectOpenAdvanceSearch();
if (_responsiveUtils.isMobile(context)) {
await showAdvancedSearchFilterBottomSheet(context);
selectOpenAdvanceSearch();
}
}
@override
void onDone() {}