TF-452 Fix search boxes should be collapsed automatically when search inputs lost focus
This commit is contained in:
@@ -125,6 +125,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
void onInit() {
|
||||
_registerNetworkConnectivityState();
|
||||
_registerPendingEmailAddress();
|
||||
_registerSearchFocusListener();
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
@@ -224,6 +225,17 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
});
|
||||
}
|
||||
|
||||
void _registerSearchFocusListener() {
|
||||
searchFocus.addListener(() {
|
||||
final hasFocus = searchFocus.hasFocus;
|
||||
final query = searchQuery?.value;
|
||||
log('MailboxDashBoardController::_registerSearchFocusListener(): hasFocus: $hasFocus | query: $query');
|
||||
if (!hasFocus && (query == null || query.isEmpty)) {
|
||||
disableSearch();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void _getUserProfile() async {
|
||||
userProfile.value = sessionCurrent != null ? UserProfile(sessionCurrent!.username.value) : null;
|
||||
}
|
||||
@@ -300,7 +312,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
searchInputController.clear();
|
||||
listFilterQuickSearch.clear();
|
||||
emailReceiveTimeType.value = null;
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
searchFocus.unfocus();
|
||||
}
|
||||
|
||||
void clearTextSearch() {
|
||||
@@ -309,6 +321,10 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
searchFocus.requestFocus();
|
||||
}
|
||||
|
||||
void onChangeTextSearch(String value) {
|
||||
searchQuery = SearchQuery(value);
|
||||
}
|
||||
|
||||
void updateTextSearch(String value) {
|
||||
searchInputController.text = value;
|
||||
}
|
||||
|
||||
@@ -420,6 +420,10 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
}
|
||||
controller.searchEmail(context, keyword);
|
||||
},
|
||||
onChanged: (query) {
|
||||
log('MailboxDashBoardView::_buildSearchForm(): onChanged: $query');
|
||||
controller.onChangeTextSearch(query);
|
||||
},
|
||||
decoration: InputDecoration(
|
||||
border: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
|
||||
Reference in New Issue
Block a user