diff --git a/lib/core/service/parmacyModule/parmacy_module_service.dart b/lib/core/service/parmacyModule/parmacy_module_service.dart index b32b86e0..5a0a9e54 100644 --- a/lib/core/service/parmacyModule/parmacy_module_service.dart +++ b/lib/core/service/parmacyModule/parmacy_module_service.dart @@ -113,6 +113,7 @@ class PharmacyModuleService extends BaseService { } Future getTopManufacturerList() async { + if (manufacturerList.isNotEmpty) return; Map queryParams = {'page': '1', 'limit': '8'}; try { await baseAppClient.getPharmacy(GET_PHARMACY_TOP_MANUFACTURER, @@ -121,7 +122,7 @@ class PharmacyModuleService extends BaseService { response['manufacturer'].forEach((item) { Manufacturer manufacturer = Manufacturer.fromJson(item); // if (manufacturer.image != null) { - manufacturerList.add(Manufacturer.fromJson(item)); + manufacturerList.add(Manufacturer.fromJson(item)); // } }); hasError = false; @@ -135,6 +136,8 @@ class PharmacyModuleService extends BaseService { } Future getBestSellerProducts() async { + if (bestSellerProducts.isNotEmpty) return; + Map queryParams = { 'fields': 'id,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage,reviews', @@ -173,7 +176,8 @@ class PharmacyModuleService extends BaseService { }); hasError = false; }, onFailure: (String error, int statusCode) { - hasError = true; // sharedPref.setString(PHARMACY_LAST_VISITED_PRODUCTS, ""); + hasError = + true; // sharedPref.setString(PHARMACY_LAST_VISITED_PRODUCTS, ""); super.error = error; }); } catch (error) { diff --git a/lib/pages/landing/landing_page_pharmcy.dart b/lib/pages/landing/landing_page_pharmcy.dart index 9f00e27c..4927c163 100644 --- a/lib/pages/landing/landing_page_pharmcy.dart +++ b/lib/pages/landing/landing_page_pharmcy.dart @@ -2,6 +2,7 @@ import 'package:barcode_scan_fix/barcode_scan.dart'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'; import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; +import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.dart'; @@ -18,6 +19,8 @@ import 'package:diplomaticquarterapp/widgets/pharmacy/bottom_nav_pharmacy_bar.da import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import '../../locator.dart'; + class LandingPagePharmacy extends StatefulWidget { @override _LandingPagePharmacyState createState() => _LandingPagePharmacyState(); @@ -37,6 +40,10 @@ class _LandingPagePharmacyState extends State { void initState() { super.initState(); + locator().manufacturerList = []; + locator().bestSellerProducts = []; + locator().lastVisitedProducts = []; + pageController = PageController(keepPage: true); } diff --git a/lib/pages/pharmacies/widgets/ProductTileItem.dart b/lib/pages/pharmacies/widgets/ProductTileItem.dart index 07abe2db..a2400e63 100644 --- a/lib/pages/pharmacies/widgets/ProductTileItem.dart +++ b/lib/pages/pharmacies/widgets/ProductTileItem.dart @@ -13,8 +13,9 @@ import 'package:provider/provider.dart'; class ProductTileItem extends StatelessWidget { final AppSharedPreferences sharedPref = AppSharedPreferences(); final PharmacyProduct item; + final double itemHeight; - ProductTileItem(this.item); + ProductTileItem(this.item, this.itemHeight); void productOnClick(BuildContext ctx) { _saveLastVisitProducts(); @@ -92,12 +93,12 @@ class ProductTileItem extends StatelessWidget { ? Image.network( item.images[0].src, fit: BoxFit.cover, - height: 80, + height: itemHeight / 2, ) : Image.asset( "assets/images/no_image.png", fit: BoxFit.cover, - height: 80, + height: itemHeight / 2, ), ), Container( @@ -125,42 +126,48 @@ class ProductTileItem extends StatelessWidget { ], ), SizedBox(height: 8,), - Container( - margin: EdgeInsets.symmetric( - horizontal: 6, - vertical: 0, + Padding( + padding: const EdgeInsets.symmetric(horizontal: 6.0), + child: Texts( + projectProvider.isArabic ? item.namen : item.name, + regular: true, + fontSize: 12, + fontWeight: FontWeight.w400, ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts( - projectProvider.isArabic ? item.namen : item.name, - regular: true, - fontSize: 12, - fontWeight: FontWeight.w400, - ), - Padding( - padding: const EdgeInsets.only(top: 4, bottom: 4), - child: Texts( - "SAR ${item.price}", - fontWeight: FontWeight.w600, - fontSize: 14, - ), - ), - Row( - children: [ - Expanded( - child: StarRating( - totalAverage: item.approvedTotalReviews > 0 - ? (item.approvedRatingSum.toDouble() / - item.approvedTotalReviews.toDouble()) - .toDouble() - : 0, - forceStars: true), + ), + Expanded( + child: Container( + margin: EdgeInsets.symmetric( + horizontal: 6, + vertical: 0, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4, bottom: 4), + child: Texts( + "SAR ${item.price}", + fontWeight: FontWeight.w600, + fontSize: 14, ), - ], - ), - ], + ), + Row( + children: [ + Expanded( + child: StarRating( + totalAverage: item.approvedTotalReviews > 0 + ? (item.approvedRatingSum.toDouble() / + item.approvedTotalReviews.toDouble()) + .toDouble() + : 0, + forceStars: true), + ), + ], + ), + ], + ), ), ), SizedBox(height: 5,), diff --git a/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart b/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart index baf771b2..2814bc1c 100644 --- a/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart +++ b/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart @@ -29,10 +29,10 @@ class BestSellerWidget extends StatelessWidget { )), if (model.state != ViewState.BusyLocal) Container( - height: MediaQuery.of(context).size.height / 4 + 20, + height: MediaQuery.of(context).size.height / 3 + 20, child: ListView.builder( itemBuilder: (ctx, i) => - ProductTileItem(model.bestSellerProduct[i]), + ProductTileItem(model.bestSellerProduct[i], MediaQuery.of(context).size.height / 4 + 20), scrollDirection: Axis.horizontal, itemCount: model.bestSellerProduct.length, ), diff --git a/lib/pages/pharmacies/widgets/home/GridViewCard.dart b/lib/pages/pharmacies/widgets/home/GridViewCard.dart index a8e3fe9b..fd8bdada 100644 --- a/lib/pages/pharmacies/widgets/home/GridViewCard.dart +++ b/lib/pages/pharmacies/widgets/home/GridViewCard.dart @@ -47,6 +47,7 @@ class GridViewCard extends StatelessWidget { TranslationBase.of(context).viewAll, handler: handler, tPadding: 0, + textColor: Color(0xFF5ab145), bPadding: 0, ), Expanded(child: Container()), diff --git a/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart b/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart index 15e9e700..3e7cf5fe 100644 --- a/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart +++ b/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart @@ -30,11 +30,11 @@ class RecentlyViewedWidget extends StatelessWidget { if (model.state != ViewState.BusyLocal) Container( height: model.lastVisitedProducts.length > 0 - ? MediaQuery.of(context).size.height / 4 + 20 + ? MediaQuery.of(context).size.height / 3 + 20 : 0, child: ListView.builder( itemBuilder: (ctx, i) => - ProductTileItem(model.lastVisitedProducts[i]), + ProductTileItem(model.lastVisitedProducts[i], MediaQuery.of(context).size.height / 4 + 20), scrollDirection: Axis.horizontal, itemCount: model.lastVisitedProducts.length, ), diff --git a/lib/pages/pharmacies/widgets/home/ShopByBrandWidget.dart b/lib/pages/pharmacies/widgets/home/ShopByBrandWidget.dart index 8f4f943d..7fcdbfe8 100644 --- a/lib/pages/pharmacies/widgets/home/ShopByBrandWidget.dart +++ b/lib/pages/pharmacies/widgets/home/ShopByBrandWidget.dart @@ -25,7 +25,7 @@ class ShopByBrandWidget extends StatelessWidget { ProductBrandsPage()), if (model.state != ViewState.BusyLocal) Container( - height: 100, + height: 150, child: ListView.builder( itemBuilder: (ctx, i) => ManufacturerItem(model.manufacturerList[i]), diff --git a/lib/pages/pharmacies/widgets/manufacturerItem.dart b/lib/pages/pharmacies/widgets/manufacturerItem.dart index df5fb166..c5b6bf23 100644 --- a/lib/pages/pharmacies/widgets/manufacturerItem.dart +++ b/lib/pages/pharmacies/widgets/manufacturerItem.dart @@ -25,6 +25,7 @@ class ManufacturerItem extends StatelessWidget { ); }, child: Container( + width: 100, margin: EdgeInsets.symmetric( horizontal: 12, vertical: 4, @@ -38,8 +39,9 @@ class ManufacturerItem extends StatelessWidget { top: BorderSide(color: Colors.grey.shade300, width: 1)), ), child: item.image == null - ? Padding( + ? Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 10), + alignment: Alignment.topCenter, child: AppText(item.name, fontWeight: FontWeight.w500,fontSize: 14,), ) : Padding(