|
|
|
|
@ -25,6 +25,7 @@ class OffersAndDiscountsHome extends StatefulWidget {
|
|
|
|
|
class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
|
|
|
|
|
List<GetCategoriesList> getCategoriesList = [];
|
|
|
|
|
List<OffersListModel> getOffersList = [];
|
|
|
|
|
List<OffersListModel> _foundOffersList = [];
|
|
|
|
|
|
|
|
|
|
int currentCategoryID = 0;
|
|
|
|
|
|
|
|
|
|
@ -54,18 +55,10 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
|
|
|
|
|
isInputTypeNum: false,
|
|
|
|
|
isReadOnly: false,
|
|
|
|
|
onChange: (String value) {
|
|
|
|
|
// _runFilter(value);
|
|
|
|
|
_runFilter(value);
|
|
|
|
|
},
|
|
|
|
|
).paddingOnly(left: 21, right: 21, top: 21),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
LocaleKeys.browseCategories.tr().toText17(),
|
|
|
|
|
const Icon(Icons.filter_alt_sharp, color: MyColors.darkIconColor, size: 28.0).onPress(() {
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
).paddingOnly(left: 21, right: 21, top: 21),
|
|
|
|
|
LocaleKeys.browseCategories.tr().toText17().paddingOnly(left: 21, right: 21, top: 21),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 110.0,
|
|
|
|
|
child: getCategoriesList.isNotEmpty
|
|
|
|
|
@ -81,6 +74,7 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
|
|
|
|
|
onTap: () {
|
|
|
|
|
setState(() {
|
|
|
|
|
currentCategoryID = getCategoriesList[index].id!;
|
|
|
|
|
getCategoryOffersListAPI();
|
|
|
|
|
// getItemsForSaleList.clear();
|
|
|
|
|
// currentPageNo = 1;
|
|
|
|
|
// getItemsForSale(currentPageNo, currentCategoryID);
|
|
|
|
|
@ -146,7 +140,7 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
|
|
|
|
|
List<Widget> getItemsForSaleWidgets() {
|
|
|
|
|
List<Widget> itemsList = [];
|
|
|
|
|
|
|
|
|
|
for (var element in getOffersList) {
|
|
|
|
|
for (var element in _foundOffersList) {
|
|
|
|
|
itemsList.add(getItemCard(element));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -213,6 +207,18 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void _runFilter(String enteredKeyword) {
|
|
|
|
|
List<OffersListModel> results = [];
|
|
|
|
|
if (enteredKeyword.isEmpty) {
|
|
|
|
|
results = getOffersList;
|
|
|
|
|
} else {
|
|
|
|
|
results = getOffersList.where((offer) => offer.title!.toLowerCase().contains(enteredKeyword.toLowerCase())).toList();
|
|
|
|
|
}
|
|
|
|
|
setState(() {
|
|
|
|
|
_foundOffersList = results;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void navigateToDetails(OffersListModel offersListModelObj) {
|
|
|
|
|
List<OffersListModel> getOffersDetailList = [];
|
|
|
|
|
getOffersDetailList.clear();
|
|
|
|
|
@ -258,6 +264,7 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
|
|
|
|
|
try {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
getOffersList = await OffersAndDiscountsApiClient().getOffersList(currentCategoryID, 100);
|
|
|
|
|
_foundOffersList = getOffersList;
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
setState(() {});
|
|
|
|
|
} catch (ex) {
|
|
|
|
|
|