TF-452 Fix search boxes should be collapsed automatically when search inputs lost focus

This commit is contained in:
dab246
2022-06-15 12:17:47 +07:00
committed by Dat H. Pham
parent f0c6055dc1
commit e4a0855738
5 changed files with 37 additions and 5 deletions
@@ -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,