edit advanced_search_filter_form remove scroll view

This commit is contained in:
ManhNTX
2022-06-26 13:54:35 +07:00
committed by Dat H. Pham
parent e5f4e36561
commit b23e905dd9
@@ -22,86 +22,82 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
controller.initSearchFilterField(context); controller.initSearchFilterField(context);
return SingleChildScrollView( return Material(
child: Padding( color: Colors.white,
padding: const EdgeInsets.symmetric(horizontal: 28, vertical: 12), child: Column(
child: Material( children: [
color: Colors.white, _buildFilterField(
child: Column( textEditingController: controller.fromFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.form,
),
_buildFilterField(
textEditingController: controller.toFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.to,
),
_buildFilterField(
textEditingController: controller.subjectFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.subject,
),
_buildFilterField(
textEditingController: controller.hasKeyWordFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.hasKeyword,
),
_buildFilterField(
textEditingController: controller.notKeyWordFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.notKeyword,
),
_buildFilterField(
textEditingController: controller.mailBoxFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.mailBox,
isSelectFormList: true,
),
// _buildFilterField(
// textEditingController: controller.dateFilterInputController,
// context: context,
// advancedSearchFilterField: AdvancedSearchFilterField.date,
// isSelectFormList: true,
// onTap: () {
// openContextMenuAction(
// context,
// _buildEmailReceiveTimeTypeActionTiles(context),
// );
// },
// ),
_buildEmailReceiveTimeTypeDropDownButton(),
_buildCheckboxHasAttachment(context),
Row(
children: [ children: [
_buildFilterField( Expanded(
textEditingController: controller.fromFilterInputController, child: _buildButton(
context: context, onAction: () {
advancedSearchFilterField: AdvancedSearchFilterField.form, controller.cleanSearchFilter();
},
colorButton: AppColor.primaryColor.withOpacity(0.14),
colorText: AppColor.primaryColor,
text: AppLocalizations.of(context).clearFilter,
),
), ),
_buildFilterField( const SizedBox(width: 12),
textEditingController: controller.toFilterInputController, Expanded(
context: context, child: _buildButton(
advancedSearchFilterField: AdvancedSearchFilterField.to, onAction: () {
), controller.applyAdvancedSearchFilter(context);
_buildFilterField( popBack();
textEditingController: controller.subjectFilterInputController, },
context: context, colorButton: AppColor.primaryColor,
advancedSearchFilterField: AdvancedSearchFilterField.subject, colorText: AppColor.primaryLightColor,
), text: AppLocalizations.of(context).search,
_buildFilterField( ),
textEditingController: controller.hasKeyWordFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.hasKeyword,
),
_buildFilterField(
textEditingController: controller.notKeyWordFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.notKeyword,
),
_buildFilterField(
textEditingController: controller.mailBoxFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.mailBox,
isSelectFormList: true,
),
_buildFilterField(
textEditingController: controller.dateFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.date,
isSelectFormList: true,
onTap: () {
openContextMenuAction(
context,
_buildEmailReceiveTimeTypeActionTiles(context),
);
},
) ,
_buildCheckboxHasAttachment(context),
Row(
children: [
Expanded(
child: _buildButton(
onAction: () {
controller.cleanSearchFilter();
},
colorButton: AppColor.primaryColor.withOpacity(0.14),
colorText: AppColor.primaryColor,
text: AppLocalizations.of(context).clearFilter,
),
),
const SizedBox(width: 12),
Expanded(
child: _buildButton(
onAction: () {
controller.applyAdvancedSearchFilter(context);
popBack();
},
colorButton: AppColor.primaryColor,
colorText: AppColor.primaryLightColor,
text: AppLocalizations.of(context).search,
),
),
],
), ),
], ],
), ),
), ],
), ),
); );
} }
@@ -110,15 +106,15 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
return EmailReceiveTimeType.values return EmailReceiveTimeType.values
.map( .map(
(e) => Material( (e) => Material(
child: PopupMenuItem( child: PopupMenuItem(
child: Text(e.getTitle(context)), child: Text(e.getTitle(context)),
onTap: () { onTap: () {
controller.dateFilterSelectedFormAdvancedSearch.value = e; controller.dateFilterSelectedFormAdvancedSearch.value = e;
controller.dateFilterInputController.text = e.getTitle(context); controller.dateFilterInputController.text = e.getTitle(context);
}, },
), ),
), ),
) )
.toList(); .toList();
} }
@@ -143,30 +139,31 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
const Padding(padding: EdgeInsets.all(4)), const Padding(padding: EdgeInsets.all(4)),
responsiveUtils.isMobile(context) responsiveUtils.isMobile(context)
? _buildTextField( ? _buildTextField(
isSelectFormList: isSelectFormList, isSelectFormList: isSelectFormList,
onTap: onTap, onTap: onTap,
context: context, context: context,
advancedSearchFilterField: advancedSearchFilterField, advancedSearchFilterField: advancedSearchFilterField,
textEditingController: textEditingController, textEditingController: textEditingController,
) : Expanded( )
child: _buildTextField( : Expanded(
isSelectFormList: isSelectFormList, child: _buildTextField(
onTap: onTap, isSelectFormList: isSelectFormList,
context: context, onTap: onTap,
advancedSearchFilterField: advancedSearchFilterField, context: context,
textEditingController: textEditingController, advancedSearchFilterField: advancedSearchFilterField,
), textEditingController: textEditingController,
) ),
)
]; ];
return Padding( return Padding(
padding: const EdgeInsets.symmetric(vertical: 8), padding: const EdgeInsets.symmetric(vertical: 8),
child: responsiveUtils.isMobile(context) child: responsiveUtils.isMobile(context)
? Column( ? Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: child, children: child,
) )
: Row(children: child), : Row(children: child),
); );
} }
@@ -183,36 +180,37 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
readOnly: isSelectFormList, readOnly: isSelectFormList,
onTap: onTap, onTap: onTap,
decoration: InputDecoration( decoration: InputDecoration(
filled: true, filled: true,
fillColor: AppColor.loginTextFieldBackgroundColor, fillColor: AppColor.loginTextFieldBackgroundColor,
contentPadding: const EdgeInsets.only( contentPadding: const EdgeInsets.only(
right: 8, right: 8,
left: 12, left: 12,
),
border: const OutlineInputBorder(
borderRadius: BorderRadius.all(
Radius.circular(10),
), ),
border: const OutlineInputBorder( ),
borderRadius: BorderRadius.all( hintText: advancedSearchFilterField.getHintText(context),
Radius.circular(10), hintStyle: const TextStyle(
), fontSize: 14,
), color: AppColor.colorHintSearchBar,
hintText: advancedSearchFilterField.getHintText(context), ),
hintStyle: const TextStyle( suffixIconConstraints:
fontSize: 14, const BoxConstraints(minHeight: 24, minWidth: 24),
color: AppColor.colorHintSearchBar, suffixIcon: isSelectFormList
), ? buildIconWeb(
suffixIconConstraints: icon: SvgPicture.asset(
const BoxConstraints(minHeight: 24, minWidth: 24), imagePaths.icDropDown,
suffixIcon: isSelectFormList ),
? buildIconWeb( )
icon: SvgPicture.asset( : null,
imagePaths.icDropDown, ),
),
)
: null),
); );
Widget _buildCheckboxHasAttachment(BuildContext context) { Widget _buildCheckboxHasAttachment(BuildContext context) {
return Obx( return Obx(
()=> CheckboxListTile( () => CheckboxListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
controlAffinity: ListTileControlAffinity.leading, controlAffinity: ListTileControlAffinity.leading,
value: controller.hasAttachment.value, value: controller.hasAttachment.value,
@@ -238,7 +236,8 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
child: Container( child: Container(
padding: const EdgeInsets.symmetric(vertical: 16), padding: const EdgeInsets.symmetric(vertical: 16),
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(10), color: colorButton), decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10), color: colorButton),
child: Text( child: Text(
text, text,
style: TextStyle(fontSize: 17, color: colorText), style: TextStyle(fontSize: 17, color: colorText),
@@ -247,28 +246,38 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
); );
} }
Widget _buildEmailReceiveTimeTypeDropDownButton(){ Widget _buildEmailReceiveTimeTypeDropDownButton() {
return DropdownButtonHideUnderline( return DropdownButtonHideUnderline(
child: DropdownButton2<EmailReceiveTimeType>( child: DropdownButton2<EmailReceiveTimeType>(
isExpanded: true, isExpanded: true,
hint: Row( hint: Row(
children: [ children: [
Expanded(child: Text(controller.dateFilterSelectedFormAdvancedSearch.value.name, Expanded(
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black), child: Text(
controller.dateFilterSelectedFormAdvancedSearch.value.name,
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.normal,
color: Colors.black),
maxLines: 1, maxLines: 1,
overflow: BuildUtils.isWeb ? null : TextOverflow.ellipsis, overflow: BuildUtils.isWeb ? null : TextOverflow.ellipsis,
)), )),
], ],
), ),
items: EmailReceiveTimeType.values.map((item) => DropdownMenuItem<EmailReceiveTimeType>( items: EmailReceiveTimeType.values
value: item, .map((item) => DropdownMenuItem<EmailReceiveTimeType>(
child: Text( value: item,
item.name, child: Text(
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.normal, color: Colors.black), item.name,
maxLines: 1, style: const TextStyle(
overflow: BuildUtils.isWeb ? null : TextOverflow.ellipsis, fontSize: 16,
), fontWeight: FontWeight.normal,
)).toList(), color: Colors.black),
maxLines: 1,
overflow: BuildUtils.isWeb ? null : TextOverflow.ellipsis,
),
))
.toList(),
value: controller.dateFilterSelectedFormAdvancedSearch.value, value: controller.dateFilterSelectedFormAdvancedSearch.value,
onChanged: (item) { onChanged: (item) {
controller.dateFilterSelectedFormAdvancedSearch.value = item!; controller.dateFilterSelectedFormAdvancedSearch.value = item!;
@@ -277,16 +286,15 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
buttonPadding: const EdgeInsets.symmetric(horizontal: 12), buttonPadding: const EdgeInsets.symmetric(horizontal: 12),
buttonDecoration: BoxDecoration( buttonDecoration: BoxDecoration(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
border: Border.all(color: AppColor.colorInputBorderCreateMailbox, width: 0.5), border: Border.all(
color: AppColor.colorInputBorderCreateMailbox, width: 0.5),
color: AppColor.colorInputBackgroundCreateMailbox), color: AppColor.colorInputBackgroundCreateMailbox),
itemHeight: 44, itemHeight: 44,
buttonHeight: 44, buttonHeight: 44,
selectedItemHighlightColor: Colors.black12, selectedItemHighlightColor: Colors.black12,
itemPadding: const EdgeInsets.symmetric(horizontal: 12), itemPadding: const EdgeInsets.symmetric(horizontal: 12),
dropdownMaxHeight: 200, dropdownMaxHeight: 200,
dropdownDecoration: BoxDecoration( dropdownDecoration: BoxDecoration(borderRadius: BorderRadius.circular(10), color: Colors.white),
borderRadius: BorderRadius.circular(10),
color: Colors.white),
dropdownElevation: 4, dropdownElevation: 4,
scrollbarRadius: const Radius.circular(40), scrollbarRadius: const Radius.circular(40),
scrollbarThickness: 6, scrollbarThickness: 6,