import 'package:diplomaticquarterapp/core/model/pharmacies/recommendedProduct_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:rating_bar/rating_bar.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; dynamic languageID; bool isInWishlist = false; int price = 0; var itemID; var product; var customerId; class RecommendedProductPage extends StatefulWidget { String productId ; RecommendedProductPage({this.productId}); @override _RecommendedProductPageState createState() => _RecommendedProductPageState(productId: productId); } class _RecommendedProductPageState extends State with SingleTickerProviderStateMixin { List recommendedProductList = []; String productId; _RecommendedProductPageState({this.productId}); String id = ""; bool styleOne = true; bool styleTwo = false; Icon styleIcon = Icon( Icons.widgets_sharp, color: Colors.blue, size: 29.0, ); getLanguageID() async { languageID = await sharedPref.getString(APP_LANGUAGE); } // String productId = "4561"; // String productId = ""; @override void initState() { checkWishlist(); userInfo(id, product); print("-------------this--------------"); print(itemID); } @override Widget build(BuildContext context) { var size = MediaQuery.of(context).size; final double itemHeight = ((size.height - kToolbarHeight - 24) * 0.80) / 2; final double itemWidth = size.width / 2; return Container(); // BaseView( // onModelReady: (model) => model.getRecommendedProducts(productId), // builder: (_, model, wi) => AppScaffold( // appBarTitle: TranslationBase.of(context).recommended, // baseViewModel: model, // isShowAppBar: true, // isPharmacy: true, // backgroundColor: Colors.white, // body: SingleChildScrollView( // child: Column(children: [ // Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: [ // Row( // mainAxisAlignment: MainAxisAlignment.start, // children: [ // Container( // padding: EdgeInsets.only( // top: 8, // bottom: 10, // left: 10, // ), // child: Text( // model.recommendedProductList.length.toString(), // style: TextStyle( // color: Colors.black, // fontSize: 14.0, // ), // ), // ), // Container( // padding: EdgeInsets.only(top: 8, bottom: 10, left: 8), // child: Text( // TranslationBase.of(context).result, // style: TextStyle( // color: Colors.black, // fontSize: 14.0, // ), // ), // ), // ], // ), // Row( // mainAxisAlignment: MainAxisAlignment.end, // children: [ // Padding( // padding: const EdgeInsets.symmetric(vertical: 8), // child: SizedBox( // child: Container( // width: 1, // color: Colors.grey, // ), // ), // ), // Container( // child: Image.asset( // 'assets/images/pharmacy/sort.png', // width: 20, // height: 20, //// color: Colors.red, // ), // ), // Container( // child: Text( // TranslationBase.of(context).sort, // style: TextStyle( // color: Colors.black, // fontSize: 14.0, // ), // ), // ), // Padding( // padding: const EdgeInsets.symmetric(vertical: 8), // child: SizedBox( // child: Container( // width: 1, // color: Colors.grey, // ), // ), // ), // Divider( // thickness: 1.0, // color: Colors.black12, // ), // Padding( // padding: EdgeInsets.all(8.0), // child: InkWell( // child: styleIcon, // onTap: () { // setState(() { // if (styleOne == true) { // styleOne = false; // styleTwo = true; // styleIcon = Icon( // Icons.auto_awesome_mosaic, // color: Colors.blue, // size: 29.0, // ); // } else { // styleOne = true; // styleTwo = false; // styleIcon = Icon( // Icons.widgets_sharp, // color: Colors.blue, // size: 29.0, // ); // } // }); // }, // ), // ), // ], // ), // ]), // SizedBox( // height: 2, // ), // Divider( // color: Colors.grey[350], // height: 10, // thickness: 6, // indent: 0, // endIndent: 0, // ), // styleOne == true // ? Container( // margin: EdgeInsets.all(5.0), // child: model.recommendedProductList.length != null // ? CustomScrollView( // primary: false, // shrinkWrap: true, // physics: NeverScrollableScrollPhysics(), // slivers: [ // SliverPadding( // padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), // sliver: SliverGrid.count( // crossAxisCount: 2, // childAspectRatio: (itemWidth / itemHeight), // children: model.recommendedProductList // .map((e) => Card( // elevation: 2, // shape: RoundedRectangleBorder( // side: BorderSide( // color: Colors.grey[300], // width: 2), // borderRadius: // BorderRadius.circular( // 10)), // margin: EdgeInsets.symmetric( // horizontal: 8, // vertical: 11, // ), // child: Container( // decoration: BoxDecoration( // borderRadius: // BorderRadius.all( // Radius.circular(15), // ), // ), // padding: EdgeInsets.symmetric( // horizontal: 4), // width: MediaQuery.of(context) // .size.width / 3, //// // child: Column( // crossAxisAlignment: // CrossAxisAlignment // .start, // children: [ // Stack(children: [ // Container( // child: Align( // alignment: Alignment.topRight, // child: itemID.contains(e.id) // // !isInWishlist // ? IconButton(icon: Icon(Icons.favorite_border), // color: Colors.grey, iconSize: 30, // onPressed: // () { // setState(() {addToWishlistFunction(itemID); // }); // }, // ) // : IconButton(icon: Icon(Icons.favorite), // color: Colors.red, iconSize: 30, // onPressed: // () {setState(() { // deleteFromWishlistFunction(itemID); // }); // }, // ) //// // ), // ), // Container(margin: EdgeInsets.fromLTRB(0, 16, 10, 16), // alignment: Alignment.center, //// padding: EdgeInsets.only(left: 25, bottom: 20), // child: (e.images != null && e.images.length > 0) // ? Image.network(e.images[0].src.toString(), //// item.images[0].src, // fit: BoxFit.cover, height: 60,) // : Image.asset("assets/images/no_image.png", fit: BoxFit.cover, height: 60, // ), // ), // Container(width: e.rxMessage != null ? MediaQuery.of(context) // .size.width / 5 : 0, // padding: EdgeInsets.all(4), // decoration: BoxDecoration( // color: Color(0xffb23838), // borderRadius: BorderRadius.only(topLeft: Radius.circular(6)), // ), // child: Texts(e.rxMessage != null ? e.rxMessage : "", // color: Colors.white, // regular: true, // fontSize: 10, // fontWeight: FontWeight.w400, // ), // ), // ]), // Container( // margin: EdgeInsets // .symmetric(horizontal: 6, vertical: 0, // ), // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Text( // languageID == "ar" ? e.namen : e.name, // style: TextStyle( // color: Colors.black, fontSize: 13.0, //// fontWeight: FontWeight.bold, // ), // ), // Padding( //// padding: const EdgeInsets.only(top: 15, bottom: 10), // padding: const EdgeInsets.only(top: 10, bottom: 5), // child: Texts("SAR ${e.price}", // bold: true, fontSize: 14, // ), // ), // ], // ), // ), // Row( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Container( // padding: EdgeInsets.only(right: 10), //// margin: EdgeInsets.only(left: 5), // child: Align(alignment: Alignment.topLeft, // child: RatingBar.readOnly(initialRating: e.approvedRatingSum.toDouble(), //// initialRating: productRate, // size: 13.0, filledColor: Colors.yellow[700], // emptyColor: Colors.grey[500], // isHalfAllowed: true, // halfFilledIcon: Icons.star_half, // filledIcon: Icons.star, // emptyIcon: Icons.star, // ), // ), // ), // Texts("(${e.approvedTotalReviews.toString()})", //// bold: true, // fontSize: 12, // ), // ]), // ], // ), // ), // ) // // ) // .toList(), // // ), // ), // ]) // : Container(), // ) // : Container( // height: model.recommendedProductList.length > 0 // ? MediaQuery.of(context).size.height * 0.60 // : 0, // child: ListView.builder( // physics: ScrollPhysics(), //// physics: NeverScrollableScrollPhysics(), // itemCount: model.recommendedProductList.length, // itemBuilder: (context, index) { // return Card( // elevation: 2, // shape: RoundedRectangleBorder( // side: BorderSide(color: Colors.grey[300], width: 2), // borderRadius: BorderRadius.circular(10)), //// // margin: EdgeInsets.symmetric( // horizontal: 8, // vertical: 4, // ), // child: Container( // decoration: BoxDecoration( // borderRadius: BorderRadius.all( // Radius.circular(15), // ), // ), // padding: EdgeInsets.symmetric(horizontal: 5), // width: MediaQuery.of(context).size.width / 3, //// // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Stack(children: [ // Container( // child: Align( // alignment: Alignment.topRight, // child: //true // //wishlistVar[index].id.contains(model.recommendedProductList[index].id) // !isInWishlist // ? IconButton( // icon: Icon(Icons.favorite_border), // color: Colors.grey, // iconSize: 30, // onPressed: () { // setState(() { // addToWishlistFunction(itemID); // }); // }, // ) // : IconButton( // icon: Icon(Icons.favorite), // color: Colors.red, // iconSize: 30, // onPressed: () { // setState(() { // deleteFromWishlistFunction(itemID); // }); // }, // ) //// // ), // ), // Container( // margin: EdgeInsets.fromLTRB(0, 16, 10, 16), // alignment: Alignment.center, //// padding: EdgeInsets.only(left: 25, bottom: 20), // child: (model.recommendedProductList[index].images != null && // model.recommendedProductList[index].images.length > 0) // ? Image.network(model.recommendedProductList[index].images[0].src.toString(), //// item.images[0].src, // fit: BoxFit.cover, // height: 60, // ) // : Image.asset("assets/images/no_image.png", // fit: BoxFit.cover, // height: 60, // ), // ), // Container( // width: model.recommendedProductList[index].rxMessage != null // ? MediaQuery.of(context).size.width / 5 // : 0, // padding: EdgeInsets.all(4), // decoration: BoxDecoration( // color: Color(0xffb23838), // borderRadius: BorderRadius.only( // topLeft: Radius.circular(6)), // ), // child: Texts( // model.recommendedProductList[index].rxMessage != null // ? model.recommendedProductList[index].rxMessage // : "", // color: Colors.white, // regular: true, // fontSize: 10, // fontWeight: FontWeight.w400, // ), // ), // ]), // Container( // margin: EdgeInsets.symmetric( // horizontal: 6, // vertical: 2, // ), // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Text(model.recommendedProductList[index].name, // style: TextStyle( // color: Colors.black, // fontSize: 13.0, //// fontWeight: FontWeight.bold, // ), // ), // Padding( //// padding: const EdgeInsets.only(top: 15, bottom: 10), // padding: const EdgeInsets.only( // top: 10, bottom: 5), // child: Texts( // "SAR ${model.recommendedProductList[index].price}", // bold: true, // fontSize: 14, // ), // ), // ], // ), // ), // Row( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Container( // padding: EdgeInsets.only( // right: 10, bottom: 10), //// margin: EdgeInsets.only(left: 5), // child: Align( // alignment: Alignment.topLeft, // child: RatingBar.readOnly( // initialRating: model.recommendedProductList[index].approvedRatingSum.toDouble(), //// initialRating: productRate, // size: 13.0, // filledColor: Colors.yellow[700], // emptyColor: Colors.grey[500], // isHalfAllowed: true, // halfFilledIcon: Icons.star_half, // filledIcon: Icons.star, // emptyIcon: Icons.star, // ), // ), // ), // Texts( // "(${model.recommendedProductList[index].approvedTotalReviews.toString()})", //// bold: true, // fontSize: 12, // ), // ]), // ], // ), // ), // ); // // }), // ), // ]), // ), // ), // ); } checkWishlist() async { ProductDetailViewModel x = new ProductDetailViewModel(); await x.checkWishlistData(); for (int i = 0; i < x.wishListItems.length; i++) { // itemID = x.wishListItems[i].id; print("-------------wishlist---------------"); print(itemID); // print(product.id); print(x.wishListItems[i].productId); if (itemID == x.wishListItems[i].productId) { isInWishlist = true; // print('in wishlist'); break; } else { isInWishlist = false; // print('not in wishlist'); } } } Future userInfo(id, product) async { customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID); if (customerId != null) { itemID = id; product = product; checkWishlist(); } print("customerId:$customerId"); return customerId; } addToWishlistFunction(itemID) async { ProductDetailViewModel x = new ProductDetailViewModel(); isInWishlist = true; await x.addToWishlistData(itemID); } deleteFromWishlistFunction(itemID) async { ProductDetailViewModel x = new ProductDetailViewModel(); isInWishlist = false; await x.addToWishlistData(itemID); } }