diff --git a/lib/pages/pharmacies/widgets/ProductTileItem.dart b/lib/pages/pharmacies/widgets/ProductTileItem.dart index 69c6ea37..c2eae6db 100644 --- a/lib/pages/pharmacies/widgets/ProductTileItem.dart +++ b/lib/pages/pharmacies/widgets/ProductTileItem.dart @@ -17,7 +17,6 @@ import 'package:rating_bar/rating_bar.dart'; import 'dart:math' as math; - class ProductTileItem extends StatelessWidget { final AppSharedPreferences sharedPref = AppSharedPreferences(); final PharmacyProduct item; @@ -46,13 +45,13 @@ class ProductTileItem extends StatelessWidget { }); } - if(items.length >= 15){ + if (items.length >= 15) { items.removeAt(0); // lastVisited = lastVisited.replaceFirst(RegExp('$itemToRemove'), ''); } lastVisited = ""; - for(int i = items.length - 1; i >= 0; i--){ + for (int i = items.length - 1; i >= 0; i--) { if (lastVisited == "") { // it means there is no lastVisited yet lastVisited = "${items[i]}"; @@ -62,7 +61,6 @@ class ProductTileItem extends StatelessWidget { } } - if (!isIdExist) { if (lastVisited == "") { // it means there is no lastVisited yet @@ -84,9 +82,8 @@ class ProductTileItem extends StatelessWidget { child: Container( margin: EdgeInsets.all(7), decoration: BoxDecoration( - border:Border.all(color: Colors.grey.shade300,width: 0.5), - borderRadius: BorderRadius.circular(8) - ), + border: Border.all(color: Colors.grey.shade300, width: 0.5), + borderRadius: BorderRadius.circular(8)), padding: EdgeInsets.symmetric(horizontal: 4), width: MediaQuery.of(context).size.width / 2.8, child: Column( @@ -115,16 +112,18 @@ class ProductTileItem extends StatelessWidget { Container( width: double.infinity, height: MediaQuery.of(context).size.width * 0.3, - padding: EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), + padding: + EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), color: Colors.white, child: InkWell( - onTap: () { - }, + onTap: () {}, child: Container( width: double.infinity, height: double.infinity, clipBehavior: Clip.antiAlias, - decoration: containerRadiusWithGradientServices(33, lightColor: Colors.transparent, darkColor: Colors.transparent), + decoration: containerRadiusWithGradientServices(33, + lightColor: Colors.transparent, + darkColor: Colors.transparent), child: Stack( children: [ Container( @@ -139,95 +138,101 @@ class ProductTileItem extends StatelessWidget { Container( margin: EdgeInsets.fromLTRB(0, 0, 0, 0), alignment: Alignment.center, - child: (item.images != null && item.images.length > 0) + child: (item.images != null && + item.images.length > 0) ? Image.network( - item.images[0].src, - fit: BoxFit.cover, - height: itemHeight / 2, - ) + item.images[0].src, + fit: BoxFit.cover, + height: itemHeight / 2, + ) : Image.asset( - "assets/images/no_image.png", - fit: BoxFit.cover, - height: itemHeight / 2, - ), + "assets/images/no_image.png", + fit: BoxFit.cover, + height: itemHeight / 2, + ), ), ], ), ), - - projectProvider.isArabic - ? Positioned( - right: -16, - top: 2, - child: Transform.rotate( - angle: math.pi / 4, - child: Container( - padding: EdgeInsets.only(left: 18, right: 18, top: 6, bottom: 3), - color: CustomColors.accentColor, - child: Text( - "E-Prescription Is required", - style: TextStyle( - color: Colors.white, - fontSize: 9, - height: 0.8, - letterSpacing: -0.27, - ), - ), - ), - ), - ) - : Positioned( - left: -24, - top: 2, - child: Transform.rotate( - angle: -math.pi / 4, - child: Container( - padding: EdgeInsets.only(left: 18, right: 18, top: 6, bottom: 3), - color: CustomColors.accentColor, - child: Text( - "\n E-Pr5escription \n Is required", - style: TextStyle( - color: Colors.white, - fontSize: 7, - //letterSpacing: -0.27, - height: 1.2, + if (item.rxMessage != null) + projectProvider.isArabic + ? Positioned( + right: -16, + top: 2, + child: Transform.rotate( + angle: math.pi / 4, + child: Container( + padding: EdgeInsets.only( + left: 18, right: 18, top: 6, bottom: 3), + color: CustomColors.accentColor, + child: Padding( + padding: EdgeInsets.all(2.0), + child: Text( + "الوصفة\n مطلوبة", + style: TextStyle( + color: Colors.white, + fontSize: 7.5, + height: 0.8, + fontWeight: FontWeight.bold, + letterSpacing: -0.27, + ), + ), + ), + ), + ), + ) + : Positioned( + left: -24, + top: 2, + child: Transform.rotate( + angle: -math.pi / 4, + child: Container( + padding: EdgeInsets.only( + left: 18, right: 18, top: 6, bottom: 3), + color: CustomColors.accentColor, + child: Text( + "\n E-Prescription \n Is required", + style: TextStyle( + color: Colors.white, + fontSize: 7.5, + //letterSpacing: -0.27, + height: 1.2, + fontWeight: FontWeight.w600, + ), + ), + ), + ), ), - ), - ), - ), - ), ], ), ), ), ), - - Padding( - padding: EdgeInsets.fromLTRB(1,1,1,1), - child: Container( - width: item.rxMessage != null - ? MediaQuery.of(context).size.width / 1.0 - : 0, - padding: EdgeInsets.fromLTRB(8,2,8,2), - decoration: BoxDecoration( - color: Color(0xffb23838), - - ), - child: item.rxMessage != null - ? Texts( - projectProvider.isArabic - ? item.rxMessagen - : item.rxMessage, - color: Colors.white, - regular: true, - fontSize: 10, - fontWeight: FontWeight.w400, - ) - : Texts(""), - ), - ), - // SizedBox(height: 4,), + // Padding( + // padding: EdgeInsets.fromLTRB(1, 1, 1, 1), + // child: Container( + // width: item.rxMessage != null + // ? MediaQuery.of(context).size.width / 1.0 + // : 0, + // padding: EdgeInsets.fromLTRB(8, 2, 8, 2), + // decoration: BoxDecoration( + // color: Color(0xffb23838), + // ), + // child: item.rxMessage != null + // ? Texts( + // projectProvider.isArabic + // ? item.rxMessagen + // : item.rxMessage, + // color: Colors.white, + // regular: true, + // fontSize: 10, + // fontWeight: FontWeight.w400, + // ) + // : Texts(""), + // ), + // ), + // SizedBox(height: 4,), Padding( padding: const EdgeInsets.symmetric(horizontal: 4.0), child: Texts( @@ -257,17 +262,17 @@ class ProductTileItem extends StatelessWidget { ), Row( children: [ - // Expanded( - RatingBar.readOnly( - initialRating: item.approvedRatingSum.toDouble(), - size: 15.0, - filledColor: Colors.yellow[700], - emptyColor: Colors.grey[500], - isHalfAllowed: true, - halfFilledIcon: Icons.star_half, - filledIcon: Icons.star, - emptyIcon: Icons.star, - ), + // Expanded( + RatingBar.readOnly( + initialRating: item.approvedRatingSum.toDouble(), + size: 15.0, + filledColor: Color(0xffD02127), + emptyColor: Colors.grey[500], + isHalfAllowed: true, + halfFilledIcon: Icons.star_half, + filledIcon: Icons.star, + emptyIcon: Icons.star, + ), Texts( "(${item.approvedTotalReviews})", regular: true, @@ -281,14 +286,16 @@ class ProductTileItem extends StatelessWidget { // .toDouble() // : 0, // forceStars: true), - // ), + // ), ], ), ], ), ), ), - SizedBox(height: 5,), + SizedBox( + height: 5, + ), ], ), ), diff --git a/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart b/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart index 2814bc1c..780adba9 100644 --- a/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart +++ b/lib/pages/pharmacies/widgets/home/BestSellerWidget.dart @@ -28,15 +28,17 @@ class BestSellerWidget extends StatelessWidget { productType: 20, )), if (model.state != ViewState.BusyLocal) - Container( - height: MediaQuery.of(context).size.height / 3 + 20, - child: ListView.builder( - itemBuilder: (ctx, i) => - ProductTileItem(model.bestSellerProduct[i], MediaQuery.of(context).size.height / 4 + 20), - scrollDirection: Axis.horizontal, - itemCount: model.bestSellerProduct.length, - ), - ) else + Container( + height: MediaQuery.of(context).size.height / 3 + 20, + child: ListView.builder( + itemBuilder: (ctx, i) => ProductTileItem( + model.bestSellerProduct[i], + MediaQuery.of(context).size.height / 4 + 20), + scrollDirection: Axis.horizontal, + itemCount: model.bestSellerProduct.length, + ), + ) + else Container( height: 80, child: Center( diff --git a/lib/pages/pharmacies/widgets/home/MostViewedWidget.dart b/lib/pages/pharmacies/widgets/home/MostViewedWidget.dart index aa160baa..de34863d 100644 --- a/lib/pages/pharmacies/widgets/home/MostViewedWidget.dart +++ b/lib/pages/pharmacies/widgets/home/MostViewedWidget.dart @@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/pages/final_products_page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductTileItem.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart'; import 'package:flutter/material.dart'; diff --git a/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart b/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart index 3e7cf5fe..3c2cb710 100644 --- a/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart +++ b/lib/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart @@ -18,42 +18,46 @@ class RecentlyViewedWidget extends StatelessWidget { builder: (_, model, wi) => NetworkBaseView( isLocalLoader: true, baseViewModel: model, - child: model.lastVisitedProducts.isNotEmpty ? Container( - child: Column( - children: [ - ViewAllHomeWidget( - TranslationBase.of(context).recentlyViewed, - FinalProductsPage( - id: "", - productType: 3, - )), - if (model.state != ViewState.BusyLocal) - Container( - height: model.lastVisitedProducts.length > 0 - ? MediaQuery.of(context).size.height / 3 + 20 - : 0, - child: ListView.builder( - itemBuilder: (ctx, i) => - ProductTileItem(model.lastVisitedProducts[i], MediaQuery.of(context).size.height / 4 + 20), - scrollDirection: Axis.horizontal, - itemCount: model.lastVisitedProducts.length, - ), - ) - else - Container( - height: 80, - child: Center( - child:CircularProgressIndicator( - backgroundColor: Colors.white, - valueColor: AlwaysStoppedAnimation( - Colors.grey[500], + child: model.lastVisitedProducts.isNotEmpty + ? Container( + child: Column( + children: [ + ViewAllHomeWidget( + TranslationBase.of(context).recentlyViewed, + FinalProductsPage( + id: "", + productType: 3, + )), + if (model.state != ViewState.BusyLocal) + Container( + height: model.lastVisitedProducts.length > 0 + ? MediaQuery.of(context).size.height / 3 + 20 + : 0, + child: ListView.builder( + itemBuilder: (ctx, i) => ProductTileItem( + model.lastVisitedProducts[i], + MediaQuery.of(context).size.height / 4 + + 20), + scrollDirection: Axis.horizontal, + itemCount: model.lastVisitedProducts.length, + ), + ) + else + Container( + height: 80, + child: Center( + child: CircularProgressIndicator( + backgroundColor: Colors.white, + valueColor: AlwaysStoppedAnimation( + Colors.grey[500], + ), + ), + ), ), - ), - ), + ], ), - ], - ), - ) : Container(), + ) + : Container(), )); } } diff --git a/lib/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart b/lib/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart index 05c57f2e..1289e733 100644 --- a/lib/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart +++ b/lib/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart @@ -4,11 +4,9 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:flutter/material.dart'; class ViewAllHomeWidget extends StatelessWidget { - final String title; final Widget navigationWidget; - ViewAllHomeWidget(this.title, this.navigationWidget); @override @@ -23,22 +21,32 @@ class ViewAllHomeWidget extends StatelessWidget { bold: true, fontSize: 16, ), - BorderedButton( - TranslationBase.of(context).viewAll, - hasBorder: true, - borderColor: Colors.green, - textColor: Colors.green, - fontWeight: FontWeight.bold, - vPadding: 6, - hPadding: 14, - handler: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - navigationWidget)); + InkWell( + onTap: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => navigationWidget)); }, + child: Texts( + TranslationBase.of(context).viewAll, + color: Color(0xffD02127), + decoration: TextDecoration.underline, + fontWeight: FontWeight.w600, + fontSize: 12.0, + ), ), + // BorderedButton( + // TranslationBase.of(context).viewAll, + // hasBorder: true, + // borderColor: Colors.green, + // textColor: Colors.green, + // fontWeight: FontWeight.bold, + // vPadding: 6, + // hPadding: 14, + // handler: () { + // Navigator.push(context, + // MaterialPageRoute(builder: (context) => navigationWidget)); + // }, + // ), ], ), );