fix bugs pharmacy home and increase performance

merge-requests/416/head
mosazaid 3 years ago
parent 48642a3c7c
commit 0d2d4c64c2

@ -113,6 +113,7 @@ class PharmacyModuleService extends BaseService {
}
Future getTopManufacturerList() async {
if (manufacturerList.isNotEmpty) return;
Map<String, String> queryParams = {'page': '1', 'limit': '8'};
try {
await baseAppClient.getPharmacy(GET_PHARMACY_TOP_MANUFACTURER,
@ -135,6 +136,8 @@ class PharmacyModuleService extends BaseService {
}
Future getBestSellerProducts() async {
if (bestSellerProducts.isNotEmpty) return;
Map<String, String> 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) {

@ -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<LandingPagePharmacy> {
void initState() {
super.initState();
locator<PharmacyModuleService>().manufacturerList = [];
locator<PharmacyModuleService>().bestSellerProducts = [];
locator<PharmacyModuleService>().lastVisitedProducts = [];
pageController = PageController(keepPage: true);
}

@ -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,20 +126,25 @@ class ProductTileItem extends StatelessWidget {
],
),
SizedBox(height: 8,),
Container(
Padding(
padding: const EdgeInsets.symmetric(horizontal: 6.0),
child: Texts(
projectProvider.isArabic ? item.namen : item.name,
regular: true,
fontSize: 12,
fontWeight: FontWeight.w400,
),
),
Expanded(
child: Container(
margin: EdgeInsets.symmetric(
horizontal: 6,
vertical: 0,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.end,
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(
@ -163,6 +169,7 @@ class ProductTileItem extends StatelessWidget {
],
),
),
),
SizedBox(height: 5,),
],
),

@ -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,
),

@ -47,6 +47,7 @@ class GridViewCard extends StatelessWidget {
TranslationBase.of(context).viewAll,
handler: handler,
tPadding: 0,
textColor: Color(0xFF5ab145),
bPadding: 0,
),
Expanded(child: Container()),

@ -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,
),

@ -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]),

@ -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(

Loading…
Cancel
Save