TF-3004 Fix open close advanced search looses data
This commit is contained in:
+9
-9
@@ -12,11 +12,11 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterController> {
|
||||
|
||||
final InputFieldFocusManager? focusManager;
|
||||
final InputFieldFocusManager focusManager;
|
||||
|
||||
const AdvancedSearchFilterFormBottomView({
|
||||
Key? key,
|
||||
this.focusManager,
|
||||
required this.focusManager,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
@@ -30,8 +30,8 @@ class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterControl
|
||||
transform: Matrix4.translationValues(-8.0, 0.0, 0.0),
|
||||
child: _buildCheckboxHasAttachment(
|
||||
context,
|
||||
currentFocusNode: focusManager?.attachmentCheckboxFocusNode,
|
||||
nextFocusNode: focusManager?.searchButtonFocusNode),
|
||||
currentFocusNode: focusManager.attachmentCheckboxFocusNode,
|
||||
nextFocusNode: focusManager.searchButtonFocusNode),
|
||||
),
|
||||
_buildListButton(context, controller.responsiveUtils),
|
||||
],
|
||||
@@ -67,8 +67,8 @@ class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterControl
|
||||
text: AppLocalizations.of(context).search,
|
||||
context: context,
|
||||
responsiveUtils: responsiveUtils,
|
||||
currentFocusNode: focusManager?.searchButtonFocusNode,
|
||||
nextFocusNode: focusManager?.fromFieldFocusNode
|
||||
currentFocusNode: focusManager.searchButtonFocusNode,
|
||||
nextFocusNode: focusManager.fromFieldFocusNode
|
||||
),
|
||||
),
|
||||
]);
|
||||
@@ -99,8 +99,8 @@ class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterControl
|
||||
context: context,
|
||||
responsiveUtils: responsiveUtils,
|
||||
minWidth: 144,
|
||||
currentFocusNode: focusManager?.searchButtonFocusNode,
|
||||
nextFocusNode: focusManager?.fromFieldFocusNode
|
||||
currentFocusNode: focusManager.searchButtonFocusNode,
|
||||
nextFocusNode: focusManager.fromFieldFocusNode
|
||||
),
|
||||
]);
|
||||
}
|
||||
@@ -128,7 +128,7 @@ class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterControl
|
||||
contentPadding: EdgeInsets.zero,
|
||||
value: controller.hasAttachment.value,
|
||||
activeColor: AppColor.primaryColor,
|
||||
onChanged: (value) => controller.hasAttachment.value = value ?? false,
|
||||
onChanged: controller.onHasAttachmentCheckboxChanged,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
+27
-7
@@ -60,14 +60,22 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
context: context,
|
||||
advancedSearchFilterField: AdvancedSearchFilterField.subject,
|
||||
currentFocusNode: controller.focusManager.subjectFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.hasKeywordFieldFocusNode
|
||||
nextFocusNode: controller.focusManager.hasKeywordFieldFocusNode,
|
||||
onTextChange: (value) => controller.onTextChanged(
|
||||
AdvancedSearchFilterField.subject,
|
||||
value
|
||||
),
|
||||
),
|
||||
_buildFilterField(
|
||||
textEditingController: controller.hasKeyWordFilterInputController,
|
||||
context: context,
|
||||
advancedSearchFilterField: AdvancedSearchFilterField.hasKeyword,
|
||||
currentFocusNode: controller.focusManager.hasKeywordFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.notKeywordFieldFocusNode
|
||||
nextFocusNode: controller.focusManager.notKeywordFieldFocusNode,
|
||||
onTextChange: (value) => controller.onTextChanged(
|
||||
AdvancedSearchFilterField.hasKeyword,
|
||||
value
|
||||
),
|
||||
),
|
||||
_buildFilterField(
|
||||
textEditingController: controller.notKeyWordFilterInputController,
|
||||
@@ -75,6 +83,10 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
advancedSearchFilterField: AdvancedSearchFilterField.notKeyword,
|
||||
currentFocusNode: controller.focusManager.notKeywordFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.mailboxFieldFocusNode,
|
||||
onTextChange: (value) => controller.onTextChanged(
|
||||
AdvancedSearchFilterField.notKeyword,
|
||||
value
|
||||
),
|
||||
),
|
||||
_buildFilterField(
|
||||
textEditingController: controller.mailBoxFilterInputController,
|
||||
@@ -127,7 +139,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
receiveTime.getTitle(context),
|
||||
svgIconSelected: controller.imagePaths.icFilterSelected,
|
||||
maxWidth: 320,
|
||||
isSelected: controller.dateFilterSelectedFormAdvancedSearch.value == receiveTime,
|
||||
isSelected: controller.receiveTimeType.value == receiveTime,
|
||||
onCallbackAction: () => controller.updateReceiveDateSearchFilter(context, receiveTime),
|
||||
)))
|
||||
.toList();
|
||||
@@ -142,6 +154,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
MouseCursor? mouseCursor,
|
||||
FocusNode? currentFocusNode,
|
||||
FocusNode? nextFocusNode,
|
||||
ValueChanged<String>? onTextChange,
|
||||
}) {
|
||||
final child = [
|
||||
SizedBox(
|
||||
@@ -166,6 +179,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
nextFocusNode: nextFocusNode,
|
||||
advancedSearchFilterField: advancedSearchFilterField,
|
||||
textEditingController: textEditingController,
|
||||
onTextChange: onTextChange,
|
||||
)
|
||||
else if (controller.responsiveUtils.landscapeTabletSupported(context))
|
||||
if (advancedSearchFilterField == AdvancedSearchFilterField.date)
|
||||
@@ -173,13 +187,13 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
controller.imagePaths,
|
||||
startDate: controller.startDate.value,
|
||||
endDate: controller.endDate.value,
|
||||
receiveTimeSelected: controller.dateFilterSelectedFormAdvancedSearch.value,
|
||||
receiveTimeSelected: controller.receiveTimeType.value,
|
||||
onReceiveTimeSelected: (receiveTime) => controller.updateReceiveDateSearchFilter(context, receiveTime),
|
||||
))
|
||||
else if (advancedSearchFilterField == AdvancedSearchFilterField.sortBy)
|
||||
Obx(() => SortByDropDownButton(
|
||||
imagePaths: controller.imagePaths,
|
||||
sortOrderSelected: controller.searchController.sortOrderFiltered.value,
|
||||
sortOrderSelected: controller.sortOrderType.value,
|
||||
onSortOrderSelected: controller.updateSortOrder,
|
||||
))
|
||||
else
|
||||
@@ -192,6 +206,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
nextFocusNode: nextFocusNode,
|
||||
advancedSearchFilterField: advancedSearchFilterField,
|
||||
textEditingController: textEditingController,
|
||||
onTextChange: onTextChange,
|
||||
)
|
||||
else
|
||||
Expanded(
|
||||
@@ -204,6 +219,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
nextFocusNode: nextFocusNode,
|
||||
advancedSearchFilterField: advancedSearchFilterField,
|
||||
textEditingController: textEditingController,
|
||||
onTextChange: onTextChange,
|
||||
),
|
||||
)
|
||||
];
|
||||
@@ -229,6 +245,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
MouseCursor? mouseCursor,
|
||||
FocusNode? currentFocusNode,
|
||||
FocusNode? nextFocusNode,
|
||||
ValueChanged<String>? onTextChange,
|
||||
}) {
|
||||
switch (advancedSearchFilterField) {
|
||||
case AdvancedSearchFilterField.date:
|
||||
@@ -236,13 +253,13 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
controller.imagePaths,
|
||||
startDate: controller.startDate.value,
|
||||
endDate: controller.endDate.value,
|
||||
receiveTimeSelected: controller.dateFilterSelectedFormAdvancedSearch.value,
|
||||
receiveTimeSelected: controller.receiveTimeType.value,
|
||||
onReceiveTimeSelected: (receiveTime) => controller.updateReceiveDateSearchFilter(context, receiveTime),
|
||||
));
|
||||
case AdvancedSearchFilterField.sortBy:
|
||||
return Obx(() => SortByDropDownButton(
|
||||
imagePaths: controller.imagePaths,
|
||||
sortOrderSelected: controller.searchController.sortOrderFiltered.value,
|
||||
sortOrderSelected: controller.sortOrderType.value,
|
||||
onSortOrderSelected: controller.updateSortOrder,
|
||||
));
|
||||
default:
|
||||
@@ -255,6 +272,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
nextFocusNode: nextFocusNode,
|
||||
advancedSearchFilterField: advancedSearchFilterField,
|
||||
textEditingController: textEditingController,
|
||||
onTextChange: onTextChange,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -268,6 +286,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
MouseCursor? mouseCursor,
|
||||
FocusNode? currentFocusNode,
|
||||
FocusNode? nextFocusNode,
|
||||
ValueChanged<String>? onTextChange,
|
||||
}) {
|
||||
return KeyboardListener(
|
||||
focusNode: currentFocusNode ?? FocusNode(),
|
||||
@@ -293,6 +312,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
popBack();
|
||||
}
|
||||
},
|
||||
onTextChange: onTextChange,
|
||||
decoration: InputDecoration(
|
||||
filled: true,
|
||||
fillColor: isSelectFormList ? AppColor.colorItemSelected : Colors.white,
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ class IconOpenAdvancedSearchWidget extends StatelessWidget {
|
||||
height: 16),
|
||||
onTap: () {
|
||||
log('IconOpenAdvancedSearchWidget::build(): clicked');
|
||||
advancedFilterController.initSearchFilterField();
|
||||
advancedFilterController.initSearchFilterField(context);
|
||||
searchController.openAdvanceSearch();
|
||||
}),
|
||||
),
|
||||
|
||||
@@ -137,7 +137,6 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
}
|
||||
|
||||
if (queryString.isNotEmpty || _searchController.listFilterOnSuggestionForm.isNotEmpty) {
|
||||
_searchController.clearSortOrder();
|
||||
_searchController.clearSearchFilter();
|
||||
_searchController.applyFilterSuggestionToSearchFilter(_dashBoardController.sessionCurrent?.username);
|
||||
_dashBoardController.searchEmailByQueryString(queryString);
|
||||
@@ -158,7 +157,6 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
_searchController.searchInputController.text = recent.value;
|
||||
_searchController.searchFocus.unfocus();
|
||||
_searchController.enableSearch();
|
||||
_searchController.clearSortOrder();
|
||||
_searchController.clearSearchFilter();
|
||||
_searchController.applyFilterSuggestionToSearchFilter(_dashBoardController.sessionCurrent?.username);
|
||||
_dashBoardController.searchEmailByQueryString(recent.value);
|
||||
@@ -257,6 +255,6 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
_searchController.searchInputController.clear();
|
||||
_searchController.searchFocus.unfocus();
|
||||
_searchController.enableSearch();
|
||||
_dashBoardController.searchEmailByFromFields(emailAddress);
|
||||
_dashBoardController.quickSearchEmailByFrom(emailAddress);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user