import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-page/cart-order-page.dart'; import 'package:diplomaticquarterapp/pages/pharmacy/order/ProductReview.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:rating_bar/rating_bar.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; class productTile extends StatelessWidget { final String productName; final String productPrice; final double productRate; final int productReviews; final String qyt; final String totalPrice; final bool isOrderDetails; final String productImage; final bool showLine; final String img; final String imgs; final int status; final PharmacyProduct product; final dynamic productID; final Function onDelete; final dynamic approvedTotalReviews; // final VoidCallback deleteWishlistItems; productTile( {this.productName, this.productPrice, this.productRate, this.productReviews, this.qyt, this.totalPrice, this.isOrderDetails = false, this.productImage, this.showLine = true, this.img, this.imgs, this.status, this.product, this.productID, this.onDelete, this.approvedTotalReviews, }); @override Widget build(BuildContext context) { return Container( height: 180, width: double.infinity, color: Colors.white, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ Row( children: [ this.imgs != null && this.imgs.length > 0 ? Container( margin: EdgeInsets.only(left: 10), child: Image.network( imgs, // productImage.trim(), fit: BoxFit.cover, width: 80, height: 80, ), ) : Container( margin: EdgeInsets.only(left: 10), child: Image.network( productImage, width: 80, height: 80, ) // fit: BoxFit.cover, ), Expanded( flex: 5, child: Column( children: [ Container( margin: EdgeInsets.all(5), child: Align( alignment: Alignment.topLeft, child: RichText( text: TextSpan( text: productName, style: TextStyle( color: Colors.black54, fontSize: 15, fontWeight: FontWeight.bold), ), ), ), ), Container( margin: EdgeInsets.all(5), child: Align( alignment: Alignment.topLeft, child: RichText( text: TextSpan( text: 'SAR $productPrice', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.black, fontSize: 13), ), ), ), ), this.isOrderDetails == false ? Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.all(5), child: Align( alignment: Alignment.topLeft, child: RatingBar.readOnly( initialRating: productRate, size: 15.0, filledColor: Colors.yellow[700], emptyColor: Colors.grey[500], isHalfAllowed: true, halfFilledIcon: Icons.star_half, filledIcon: Icons.star, emptyIcon: Icons.star, ), ), ), Text( '$approvedTotalReviews', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.grey, fontSize: 13), ), ], ) : Container(), ], ), ), this.isOrderDetails == false ? Expanded( flex: 1, child: Column( children: [ IconButton( icon: Icon(FontAwesomeIcons.trashAlt, size: 15), onPressed: () { GifLoaderDialogUtils.showMyDialog(context); // deleteFromWishlistFunction(productID); onDelete(productID); GifLoaderDialogUtils.hideDialog(context); }, ), SizedBox( height: 50, ), IconButton( icon: Icon(Icons.shopping_cart, size: 18, color: Colors.blue,), onPressed: () async { GifLoaderDialogUtils.showMyDialog(context); await addToCartFunction(1, productID, context); GifLoaderDialogUtils.hideDialog(context); Navigator.push( context, FadePage(page: CartOrderPage()), ); }, ), ], ), ) : Container(), ], ), this.isOrderDetails == true ? Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Container( margin: EdgeInsets.only(bottom: 5.0), child: RichText( text: TextSpan( text: TranslationBase.of(context).quantity + "" + '$qyt', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.grey, fontSize: 13), ), ), ), Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Text( TranslationBase.of(context).total, style: TextStyle( color: Colors.grey, fontSize: 13.0, fontWeight: FontWeight.bold, ), ), ], ), Row( mainAxisAlignment: MainAxisAlignment.end, children: [ RichText( text: TextSpan( text: ' $totalPrice SAR', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.black, fontSize: 15), ), ), ], ), ], ), ], ), ) : Container(), // this.isOrderDetails == true && model.order[0].orderStatusId == 30? if (status == 30 && this.isOrderDetails == true) Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Container( // margin: EdgeInsets.all(5.0), child: Align( alignment: Alignment.topLeft, child: RatingBar.readOnly( initialRating: productRate, size: 15.0, filledColor: Colors.yellow[700], emptyColor: Colors.grey[500], isHalfAllowed: true, halfFilledIcon: Icons.star_half, filledIcon: Icons.star, emptyIcon: Icons.star, ), ), ), Container( // margin: EdgeInsets.all(5), child: Align( // alignment: Alignment.topLeft, child: RichText( text: TextSpan( text: '($productReviews reviews)', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.grey, fontSize: 13), ), ), ), ), InkWell( onTap: () { Navigator.push( context, FadePage(page: ProductReviewPage(product))); }, child: Container( padding: EdgeInsets.only(left: 13.0, right: 13.0, top: 5.0), height: 30.0, decoration: BoxDecoration( border: Border.all( color: Colors.orange, style: BorderStyle.solid, width: 1.0), color: Colors.transparent, borderRadius: BorderRadius.circular(5.0)), child: Text( TranslationBase.of(context).writeReview, style: TextStyle( fontSize: 12, color: Colors.orange, ), ), ), ), ], ), ), /*Container( ),*/ ], ), ); } // deleteFromWishlistFunction(itemID) async { // ProductDetailViewModel x = new ProductDetailViewModel(); // await x.deletWishlistData(itemID); // } addToCartFunction(quantity, itemID, BuildContext context) async { ProductDetailViewModel x = new ProductDetailViewModel(); await x.addToCartData(quantity, itemID); } }