filterItem method
Implementation
void filterItem(BuildContext context) {
showModalBottomSheet(
context: context,
elevation: 4,
backgroundColor: AppColors.white,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
top: Radius.circular(20),
),
),
clipBehavior: Clip.antiAliasWithSaveLayer,
enableDrag: true,
builder: (context) {
return StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return Form(
key: controller.formKey,
// autovalidate: controller.autovalidate.value,
child: Container(
padding: const EdgeInsets.only(
left: 30, right: 30, top: 15, bottom: 15),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(),
const CustomText(
text: Strings.filterBy,
font: Dimens.fontSize16,
fntweight: FontWeight.w700,
),
CustomInkwellWidget(
onTap: () {
Navigator.pop(context);
// controller.autovalidate(false);
},
child: const Icon(
Icons.close,
color: AppColors.borderColor,
))
],
),
verticalSpaceMedium,
DropdownWidget(
currentItem: controller.availability,
items: controller.availabilityList,
title: Strings.itemAvailability,
itemCallBack: (value) => setState(() {
controller.availability = value;
}),
validator: (value) =>
value == null ? Strings.fieldCantBeEmpty : null,
),
verticalSpaceSmall,
DropdownWidget(
currentItem: controller.price,
items: controller.priceList,
title: Strings.storeCategory,
itemCallBack: (value) => setState(() {
controller.price = value;
}),
validator: (value) =>
value == null ? Strings.fieldCantBeEmpty : null,
),
verticalSpaceSmall,
verticalSpaceSmall,
Obx(() => Container(
margin: const EdgeInsets.symmetric(vertical: (20)),
child: CustomElevatedButton(
onPressed: () => controller.filterShopItems(
context, controller.availability),
minWidth: Get.width,
title: Strings.filter,
isBusy: controller.isLoading.value,
textStyle: TextStyle(color: AppColors.black),
buttonColor: AppColors.activButtonColor,
)))
],
)));
});
});
// .whenComplete(() => controller.autovalidate(true));
}