INFRA: Set Up Project.
This commit is contained in:
72
lib/controllers/search_controller.dart
Normal file
72
lib/controllers/search_controller.dart
Normal file
@@ -0,0 +1,72 @@
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/models/product_model.dart';
|
||||
import 'package:customer/models/vendor_model.dart';
|
||||
import '../service/fire_store_utils.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class SearchScreenController extends GetxController {
|
||||
@override
|
||||
void onInit() {
|
||||
// TODO: implement onInit
|
||||
getArgument();
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
RxBool isLoading = true.obs;
|
||||
RxList<VendorModel> vendorList = <VendorModel>[].obs;
|
||||
RxList<VendorModel> vendorSearchList = <VendorModel>[].obs;
|
||||
|
||||
RxList<ProductModel> productList = <ProductModel>[].obs;
|
||||
RxList<ProductModel> productSearchList = <ProductModel>[].obs;
|
||||
|
||||
Future<void> getArgument() async {
|
||||
dynamic argumentData = Get.arguments;
|
||||
if (argumentData != null) {
|
||||
vendorList.value = argumentData['vendorList'];
|
||||
productList.clear();
|
||||
}
|
||||
isLoading.value = false;
|
||||
|
||||
for (var element in vendorList) {
|
||||
await FireStoreUtils.getProductByVendorId(element.id.toString()).then((value) {
|
||||
if ((Constant.isSubscriptionModelApplied == true || element.adminCommission?.isEnabled == true) && element.subscriptionPlan != null) {
|
||||
if (element.subscriptionPlan?.itemLimit == '-1') {
|
||||
productList.addAll(value);
|
||||
} else {
|
||||
int selectedProduct =
|
||||
value.length < int.parse(element.subscriptionPlan?.itemLimit ?? '0') ? (value.isEmpty ? 0 : (value.length)) : int.parse(element.subscriptionPlan?.itemLimit ?? '0');
|
||||
productList.addAll(value.sublist(0, selectedProduct));
|
||||
}
|
||||
} else {
|
||||
productList.addAll(value);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void onSearchTextChanged(String text) {
|
||||
if (text.isEmpty) {
|
||||
return;
|
||||
}
|
||||
vendorSearchList.clear();
|
||||
productSearchList.clear();
|
||||
for (var element in vendorList) {
|
||||
if (element.title!.toLowerCase().contains(text.toLowerCase())) {
|
||||
vendorSearchList.add(element);
|
||||
}
|
||||
}
|
||||
|
||||
for (var element in productList) {
|
||||
if (element.name!.toLowerCase().contains(text.toLowerCase())) {
|
||||
productSearchList.add(element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
vendorSearchList.clear();
|
||||
productSearchList.clear();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user