Example of the controller class
class VendorOfferController extends GetxController {
static VendorOfferController to = Get.find();
Rx<VendorOffer> vendorOffer = new VendorOffer().obs;
VendorOfferRepository _vendorOfferRepository = new VendorOfferRepository();
@override
void onInit() {
// TODO: implement onInit
super.onInit();
getVendorOffer();
}
getVendorOffer() async {
Either<Failure, VendorOffer> data =
await _vendorOfferRepository.getVendorOffer();
data.fold((l) {
AppExceptionHandle.exceptionHandle(l);
}, (r) {
vendorOffer.value = r;
});
}
}
Ui class example
class VendorOfferScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(VendorOfferController());
return Scaffold(body: Obx(() {
return VendorOfferController.to.vendorOffer.value.vendorList.isEmpty
? Center(
child: CircularProgressIndicator(),
)
:Padding(
padding: const EdgeInsets.only(top: 16, bottom: 16),
child: ListView.separated(
itemBuilder: (context, int index) {
return VendorOfferCard(
address: VendorOfferController.to.vendorOffer.value
.vendorList[index].address ??
"12 /170 road:10 ,Mirpur 10 ",
name: VendorOfferController.to.vendorOffer.value
.vendorList[index].fullName ??
"Food Name",
deliveryCharge: VendorOfferController.to.vendorOffer
.value.vendorList[index].deliveryCharge ??
"\$10 ",
distance:
"${_distance == null ? 0 : _distance.round()} km",
rating: VendorOfferController.to.vendorOffer.value
.vendorList[index].rating ??
2,
offer:
"${VendorOfferController.to.vendorOffer.value.vendorList[index].offer == null ? "0" : VendorOfferController.to.vendorOffer.value.vendorList[index].offer.amount} %",
image: VendorOfferController.to.vendorOffer.value
.vendorList[index].vendorImage !=
null
? ApiUrls.download_base_url +
VendorOfferController.to.vendorOffer.value
.vendorList[index].vendorImage
: AppAssets.demo_product_image,
),
);
},
separatorBuilder: (context, int index) {
if (index == 0) {
return Container(
padding: EdgeInsets.only(top: 10),
);
}
return Container(
height: 10,
);
},
itemCount: VendorOfferController
.to.vendorOffer.value.vendorList.length),
);