Advertisement
X1ucifer

Untitled

May 10th, 2023
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 232.40 KB | None | 0 0
  1. import 'package:badges/badges.dart' as badge;
  2. import 'package:cpcdiagnostics_ecommerce/src/screen/home/product_details/related_reagents_page.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:get/get.dart';
  5. import 'package:get_storage/get_storage.dart';
  6. import 'package:share/share.dart';
  7. import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
  8. import 'package:url_launcher/url_launcher.dart';
  9. import 'package:cpcdiagnostics_ecommerce/src/_route/routes.dart';
  10. import 'package:cpcdiagnostics_ecommerce/src/controllers/cart_content_controller.dart';
  11. import 'package:cpcdiagnostics_ecommerce/src/controllers/color_selection_controller.dart';
  12. import 'package:cpcdiagnostics_ecommerce/src/controllers/currency_converter_controller.dart';
  13. import 'package:cpcdiagnostics_ecommerce/src/controllers/details_screen_controller.dart';
  14. import 'package:cpcdiagnostics_ecommerce/src/controllers/favourite_controller.dart';
  15. import 'package:cpcdiagnostics_ecommerce/src/controllers/home_screen_controller.dart';
  16. import 'package:cpcdiagnostics_ecommerce/src/controllers/dashboard_controller.dart';
  17. import 'package:cpcdiagnostics_ecommerce/src/models/product_details_model.dart';
  18. import 'package:cpcdiagnostics_ecommerce/src/screen/home/product_details/details_image_view_screen.dart';
  19. import 'package:cpcdiagnostics_ecommerce/src/servers/repository.dart';
  20. import 'package:cpcdiagnostics_ecommerce/src/utils/app_tags.dart';
  21. import 'package:cpcdiagnostics_ecommerce/src/utils/app_theme_data.dart';
  22. import 'package:flutter_rating_bar/flutter_rating_bar.dart';
  23. import 'package:flutter_screenutil/flutter_screenutil.dart';
  24. import 'package:flutter_svg/flutter_svg.dart';
  25. import 'package:cpcdiagnostics_ecommerce/src/data/local_data_helper.dart';
  26. import 'package:flutter_countdown_timer/flutter_countdown_timer.dart';
  27. import 'package:cpcdiagnostics_ecommerce/src/utils/validators.dart';
  28. import 'package:cpcdiagnostics_ecommerce/src/widgets/wholesale_data_widget.dart';
  29. import '../../../utils/responsive.dart';
  30. import '../../../widgets/button_widget.dart';
  31. import '../../../widgets/loader/shimmer_details_page.dart';
  32. import '../../dashboard/dashboard_screen.dart';
  33. import 'brochure_pdf_page.dart';
  34. import 'description_image_view.dart';
  35. import 'product_description.dart';
  36.  
  37. class DetailsPage extends StatelessWidget {
  38.   DetailsPage({Key? key}) : super(key: key) {
  39.     _cartController.isAddingToCart.value = false;
  40.   }
  41.   int reagentId = 0;
  42.   final PageController pageController = PageController();
  43.   final titleController = TextEditingController();
  44.   final writeReviewController = TextEditingController();
  45.   final writeReviewReplyController = TextEditingController();
  46.   final currencyConverterController = Get.find<CurrencyConverterController>();
  47.   final cartContentController = Get.find<CartContentController>();
  48.   final homeScreenContentController = Get.put(HomeScreenController());
  49.   final homeScreenController = Get.put(DashboardController());
  50.   final detailsController = Get.put(DetailsPageController());
  51.   final _cartController = Get.find<CartContentController>();
  52.   final _colorSelectionController = Get.put(ColorSelectionController());
  53.  
  54.   final productId = Get.parameters['productId'];
  55.   final sku = Get.parameters['sku'];
  56.  
  57.   @override
  58.   Widget build(BuildContext context) {
  59.     print("product id-->$productId");
  60.     print("ordering-->${detailsController.ordering.value}");
  61.     return Scaffold(body: GetBuilder<DetailsPageController>(
  62.       builder: (controller) {
  63.         return controller.isLoading.value
  64.             ? const Center(child: ShimmerDetailsPage())
  65.             : _detailsPageUI(controller.productDetail.value, context);
  66.       },
  67.     ));
  68.   }
  69.  
  70.   mobileAppbar() {
  71.     return AppBar(
  72.       backgroundColor: Colors.transparent,
  73.       elevation: 0,
  74.       leading: IconButton(
  75.         icon: const Icon(
  76.           Icons.arrow_back,
  77.           color: Colors.black,
  78.         ),
  79.         onPressed: () {
  80.           if (detailsController.isFavorite.value !=
  81.               detailsController.isFavoriteLocal.value) {
  82.             //_favouriteController.addOrRemoveFromFav(productId);
  83.           }
  84.           Get.back();
  85.         },
  86.       ),
  87.       centerTitle: true,
  88.       title: Text(
  89.         AppTags.productDetails.tr,
  90.         style: AppThemeData.headerTextStyle_16,
  91.       ),
  92.       actions: [
  93.         Row(
  94.           children: [
  95.             SizedBox(
  96.               height: 30.h,
  97.               width: 30.w,
  98.               child: Obx(
  99.                 () => InkWell(
  100.                   onTap: () {
  101.                     homeScreenController.changeTabIndex(2);
  102.                     Get.offAll(
  103.                       DashboardScreen(),
  104.                       transition: Transition.rightToLeftWithFade,
  105.                       duration: const Duration(milliseconds: 700),
  106.                     );
  107.                     /*if (_favouriteController.token != null) {
  108.                       if (detailsController.isFavorite.value !=
  109.                           detailsController.isFavoriteLocal.value) {
  110.                         _favouriteController.addOrRemoveFromFav(productId);
  111.                         printLog('favourite added');
  112.                       }
  113.                     }*/
  114.                   },
  115.                   child: Padding(
  116.                     padding: EdgeInsets.only(right: 10.w),
  117.                     child: badge.Badge(
  118.                         animationDuration: const Duration(milliseconds: 300),
  119.                         animationType: badge.BadgeAnimationType.slide,
  120.                         badgeContent: Text(
  121.                           cartContentController
  122.                               .addToCartListModel.data!.carts!.length
  123.                               .toString(),
  124.                           style: const TextStyle(
  125.                             color: Colors.white,
  126.                           ),
  127.                         ),
  128.                         child: const Icon(Icons.list_alt, color: Colors.black)),
  129.                   ),
  130.                 ),
  131.               ),
  132.             ),
  133.             SizedBox(width: 10.w),
  134. /*            Obx(
  135.               () => Material(
  136.                 shape: const CircleBorder(),
  137.                 child: InkWell(
  138.                   customBorder: const CircleBorder(),
  139.                   onTap: () async {
  140.                     if (_favouriteController.token != null) {
  141.                       detailsController.isFavoriteLocalUpdate();
  142.                     } else {
  143.                       Get.snackbar(
  144.                         AppTags.login.tr,
  145.                         AppTags.pleaseLoginFirst.tr,
  146.                         snackPosition: SnackPosition.BOTTOM,
  147.                         duration: const Duration(seconds: 3),
  148.                         colorText: Colors.white,
  149.                         backgroundColor: Colors.black,
  150.                         forwardAnimationCurve: Curves.decelerate,
  151.                         shouldIconPulse: false,
  152.                       );
  153.                     }
  154.                   },
  155.                   child: Container(
  156.                     height: 30.h,
  157.                     width: 30.w,
  158.                     margin: EdgeInsets.all(7.r),
  159.                     decoration: BoxDecoration(
  160.                       shape: BoxShape.circle,
  161.                       color: Colors.white,
  162.                       boxShadow: [
  163.                         BoxShadow(
  164.                           color: AppThemeData.boxShadowColor.withOpacity(0.13),
  165.                           spreadRadius: 1,
  166.                           blurRadius: 10.r,
  167.                           offset:
  168.                               const Offset(0, 2), // changes position of shadow
  169.                         ),
  170.                       ],
  171.                     ),
  172.                     child: Padding(
  173.                       padding: EdgeInsets.all(7.r),
  174.                       child: detailsController.isFavoriteLocal.value
  175.                           ? SvgPicture.asset("assets/icons/heart_on.svg")
  176.                           : SvgPicture.asset("assets/icons/heart_off.svg"),
  177.                     ),
  178.                   ),
  179.                 ),
  180.               ),
  181.             )*/
  182.           ],
  183.         )
  184.       ],
  185.     );
  186.   }
  187.  
  188.   //
  189.   tabAppbar() {
  190.     return AppBar(
  191.       backgroundColor: Colors.transparent,
  192.       toolbarHeight: 60.h,
  193.       leadingWidth: 40.w,
  194.       elevation: 0,
  195.       leading: IconButton(
  196.         icon: Icon(
  197.           Icons.arrow_back,
  198.           size: 25.r,
  199.           color: Colors.black,
  200.         ),
  201.         onPressed: () {
  202.           if (detailsController.isFavorite.value !=
  203.               detailsController.isFavoriteLocal.value) {
  204.             //_favouriteController.addOrRemoveFromFav(productId);
  205.           }
  206.           Get.back();
  207.         },
  208.       ),
  209.       centerTitle: true,
  210.       title: Text(
  211.         AppTags.productDetails.tr,
  212.         style: AppThemeData.whyUsTextStyle_13,
  213.       ),
  214.       actions: [
  215.         Row(
  216.           children: [
  217. /*            SizedBox(
  218.               height: 30.h,
  219.               width: 30.w,
  220.               child: Obx(
  221.                 () => InkWell(
  222.                   onTap: () {
  223.                     homeScreenController.changeTabIndex(2);
  224.                     Get.offAll(
  225.                       DashboardScreen(),
  226.                       transition: Transition.rightToLeftWithFade,
  227.                       duration: const Duration(milliseconds: 700),
  228.                     );
  229.                     if (_favouriteController.token != null) {
  230.                       if (detailsController.isFavorite.value !=
  231.                           detailsController.isFavoriteLocal.value) {
  232.                         _favouriteController.addOrRemoveFromFav(productId);
  233.                         printLog('favourite added');
  234.                       }
  235.                     }
  236.                   },
  237.                   child: Badge(
  238.                     padding: EdgeInsets.all(4.r),
  239.                     animationDuration: const Duration(milliseconds: 300),
  240.                     animationType: BadgeAnimationType.slide,
  241.                     badgeContent: Text(
  242.                       cartContentController
  243.                           .addToCartListModel.data!.carts!.length
  244.                           .toString(),
  245.                       style: TextStyle(color: Colors.white, fontSize: 10.sp),
  246.                     ),
  247.                     child: SvgPicture.asset(
  248.                       "assets/icons/shopping_bag.svg",
  249.                       height: 20.h,
  250.                       width: 20.w,
  251.                       color: AppThemeData.headlineTextColor,
  252.                     ),
  253.                   ),
  254.                 ),
  255.               ),
  256.             )*/
  257.             SizedBox(width: 5.w),
  258. /*            Obx(
  259.               () => Material(
  260.                 shape: const CircleBorder(),
  261.                 child: InkWell(
  262.                   customBorder: const CircleBorder(),
  263.                   onTap: () async {
  264.                     if (_favouriteController.token != null) {
  265.                       detailsController.isFavoriteLocalUpdate();
  266.                     } else {
  267.                       Get.snackbar(
  268.                         AppTags.login.tr,
  269.                         AppTags.pleaseLoginFirst.tr,
  270.                         snackPosition: SnackPosition.BOTTOM,
  271.                         duration: const Duration(seconds: 3),
  272.                         colorText: Colors.white,
  273.                         backgroundColor: Colors.black,
  274.                         forwardAnimationCurve: Curves.decelerate,
  275.                         shouldIconPulse: false,
  276.                       );
  277.                     }
  278.                   },
  279.                   child: Container(
  280.                     height: 30.h,
  281.                     width: 30.w,
  282.                     margin: EdgeInsets.all(7.r),
  283.                     decoration: BoxDecoration(
  284.                       shape: BoxShape.circle,
  285.                       color: Colors.white,
  286.                       boxShadow: [
  287.                         BoxShadow(
  288.                           color: AppThemeData.boxShadowColor.withOpacity(0.13),
  289.                           spreadRadius: 1,
  290.                           blurRadius: 10.r,
  291.                           offset:
  292.                               const Offset(0, 2), // changes position of shadow
  293.                         ),
  294.                       ],
  295.                     ),
  296.                     child: Padding(
  297.                       padding: EdgeInsets.all(8.r),
  298.                       child: detailsController.isFavoriteLocal.value
  299.                           ? SvgPicture.asset("assets/icons/heart_on.svg")
  300.                           : SvgPicture.asset("assets/icons/heart_off.svg"),
  301.                     ),
  302.                   ),
  303.                 ),
  304.               ),
  305.             )*/
  306.           ],
  307.         )
  308.       ],
  309.     );
  310.   }
  311.  
  312.   Widget _detailsPageUI(ProductDetailsModel detailsModel, context) {
  313.     Size size = MediaQuery.of(context).size;
  314.     return Scaffold(
  315.       appBar: isMobile(context) ? mobileAppbar() : tabAppbar(),
  316.       body: SizedBox(
  317.         height: size.height,
  318.         width: size.width,
  319.         child: Column(
  320.           mainAxisAlignment: MainAxisAlignment.spaceBetween,
  321.           children: [
  322.             Expanded(
  323.               child: ListView(
  324.                 scrollDirection: Axis.vertical,
  325.                 shrinkWrap: true,
  326.                 children: [
  327.                   //image Slide
  328.                   detailsController.ordering.value != 2
  329.                       ? LimitedBox(
  330.                           maxHeight: 200.h,
  331.                           child: Stack(
  332.                             clipBehavior: Clip.none,
  333.                             children: [
  334.                               InkWell(
  335.                                 onTap: () {
  336.                                   Get.to(DetailsImageViewScreen(
  337.                                     productDetailsImages: detailsController
  338.                                         .productDetail.value.data!.images,
  339.                                   ));
  340.                                 },
  341.                                 child: PageView.builder(
  342.                                   itemCount: detailsModel.data!.images!.length,
  343.                                   controller: detailsController.pageController,
  344.                                   onPageChanged: (index) {
  345.                                     detailsController.itemCounterUpdate(index);
  346.                                   },
  347.                                   itemBuilder: (context, index) {
  348.                                     return Padding(
  349.                                       padding: EdgeInsets.symmetric(
  350.                                         horizontal: 15.w,
  351.                                       ),
  352.                                       child: ClipRRect(
  353.                                         borderRadius:
  354.                                             BorderRadius.circular(15.r),
  355.                                         child: Image.network(
  356.                                           detailsModel.data!.images![index],
  357.                                         ),
  358.                                       ),
  359.                                     );
  360.                                   },
  361.                                 ),
  362.                               ),
  363.  
  364.                               //Discount Percentage
  365.                               Positioned(
  366.                                 top: 0.h,
  367.                                 left: 20.w,
  368.                                 child: Padding(
  369.                                   padding: EdgeInsets.all(5.r),
  370.                                   child: Row(
  371.                                     mainAxisAlignment: MainAxisAlignment.start,
  372.                                     children: [
  373.                                       Row(
  374.                                         children: [
  375.                                           detailsModel.data!
  376.                                                       .specialDiscountType ==
  377.                                                   'flat'
  378.                                               ? double.parse(detailsModel.data!
  379.                                                           .specialDiscount) ==
  380.                                                       0.000
  381.                                                   ? const SizedBox()
  382.                                                   : Container(
  383.                                                       height: 20.h,
  384.                                                       decoration: BoxDecoration(
  385.                                                         color: AppThemeData
  386.                                                             .productBoxDecorationColor
  387.                                                             .withOpacity(0.06),
  388.                                                         borderRadius:
  389.                                                             BorderRadius.all(
  390.                                                           Radius.circular(3.r),
  391.                                                         ),
  392.                                                       ),
  393.                                                       child: Center(
  394.                                                         child: Text(
  395.                                                           "${currencyConverterController.convertCurrency(detailsModel.data!.specialDiscount)} OFF",
  396.                                                           style: isMobile(
  397.                                                                   context)
  398.                                                               ? AppThemeData
  399.                                                                   .todayDealNewStyle
  400.                                                               : AppThemeData
  401.                                                                   .todayDealNewStyleTab,
  402.                                                         ),
  403.                                                       ),
  404.                                                     )
  405.                                               : detailsModel.data!
  406.                                                           .specialDiscountType ==
  407.                                                       'percentage'
  408.                                                   ? double.parse(detailsModel
  409.                                                               .data!
  410.                                                               .specialDiscount) ==
  411.                                                           0.000
  412.                                                       ? const SizedBox()
  413.                                                       : Container(
  414.                                                           height: 20.h,
  415.                                                           decoration:
  416.                                                               BoxDecoration(
  417.                                                             color: AppThemeData
  418.                                                                 .productBoxDecorationColor
  419.                                                                 .withOpacity(
  420.                                                                     0.06),
  421.                                                             borderRadius:
  422.                                                                 BorderRadius
  423.                                                                     .all(
  424.                                                               Radius.circular(
  425.                                                                   3.r),
  426.                                                             ),
  427.                                                           ),
  428.                                                           child: Center(
  429.                                                             child: Text(
  430.                                                               "${homeScreenContentController.removeTrailingZeros(detailsModel.data!.specialDiscount)}% OFF",
  431.                                                               textAlign:
  432.                                                                   TextAlign
  433.                                                                       .center,
  434.                                                               style: isMobile(
  435.                                                                       context)
  436.                                                                   ? AppThemeData
  437.                                                                       .todayDealNewStyle
  438.                                                                   : AppThemeData
  439.                                                                       .todayDealNewStyleTab,
  440.                                                             ),
  441.                                                           ),
  442.                                                         )
  443.                                                   : Container(),
  444.                                         ],
  445.                                       ),
  446.                                       detailsModel.data!.specialDiscount == 0
  447.                                           ? const SizedBox()
  448.                                           : SizedBox(width: 5.w),
  449.                                       detailsModel.data!.currentStock == 0
  450.                                           ? Container(
  451.                                               height: 20.h,
  452.                                               decoration: BoxDecoration(
  453.                                                 color: AppThemeData
  454.                                                     .productBoxDecorationColor
  455.                                                     .withOpacity(0.06),
  456.                                                 borderRadius: BorderRadius.all(
  457.                                                   Radius.circular(3.r),
  458.                                                 ),
  459.                                               ),
  460.                                               child: Center(
  461.                                                 child: Text(
  462.                                                   AppTags.stockOut.tr,
  463.                                                   style: isMobile(context)
  464.                                                       ? AppThemeData
  465.                                                           .todayDealNewStyle
  466.                                                       : AppThemeData
  467.                                                           .todayDealNewStyleTab,
  468.                                                 ),
  469.                                               ),
  470.                                             )
  471.                                           : const SizedBox(),
  472.                                     ],
  473.                                   ),
  474.                                 ),
  475.                               ),
  476.                               Obx(
  477.                                 () => Positioned(
  478.                                   left: 20.w,
  479.                                   bottom: 0,
  480.                                   child: Container(
  481.                                     alignment: Alignment.center,
  482.                                     decoration: BoxDecoration(
  483.                                       color: AppThemeData.buttonTextColor,
  484.                                       borderRadius: BorderRadius.all(
  485.                                         Radius.circular(5.r),
  486.                                       ),
  487.                                       boxShadow: [
  488.                                         BoxShadow(
  489.                                           spreadRadius: 1,
  490.                                           blurRadius: 16.r,
  491.                                           color: AppThemeData.headlineTextColor
  492.                                               .withOpacity(0.01),
  493.                                           offset: const Offset(0, 1),
  494.                                         )
  495.                                       ],
  496.                                     ),
  497.                                     child: Padding(
  498.                                       padding: EdgeInsets.symmetric(
  499.                                           vertical: 3.h, horizontal: 8.w),
  500.                                       child: Text(
  501.                                         "${detailsController.productImageNumber.value + 1}/${detailsModel.data!.images!.length}",
  502.                                         style: isMobile(context)
  503.                                             ? AppThemeData
  504.                                                 .orderHistoryTextStyle_12
  505.                                             : AppThemeData
  506.                                                 .orderHistoryTextStyle_9Tab,
  507.                                       ),
  508.                                     ),
  509.                                   ),
  510.                                 ),
  511.                               ),
  512.                             ],
  513.                           ),
  514.                         )
  515.                       : const SizedBox(),
  516.  
  517.                   SizedBox(height: 20.h),
  518.  
  519.                   //Timer CountDown
  520.                   Container(
  521.                     child: detailsModel.data!.specialDiscountEnd!.isNotEmpty
  522.                         ? Padding(
  523.                             padding: EdgeInsets.symmetric(vertical: 6.h),
  524.                             child: CountdownTimer(
  525.                                 endTime: detailsModel
  526.                                             .data!.specialDiscountEnd !=
  527.                                         null
  528.                                     ? DateTime.now().millisecondsSinceEpoch +
  529.                                         DateTime.parse(detailsModel
  530.                                                 .data!.specialDiscountEnd!)
  531.                                             .difference(DateTime.now())
  532.                                             .inMilliseconds
  533.                                     : DateTime.now().microsecondsSinceEpoch,
  534.                                 widgetBuilder: (_, time) {
  535.                                   if (time == null) {
  536.                                     return Center(
  537.                                       child: Text(
  538.                                         AppTags.campaignOver.tr,
  539.                                         style: isMobile(context)
  540.                                             ? AppThemeData.timeDateTextStyle_12
  541.                                             : AppThemeData.timeDateTextStyleTab,
  542.                                       ),
  543.                                     );
  544.                                   } else {
  545.                                     return Row(
  546.                                         mainAxisAlignment:
  547.                                             MainAxisAlignment.center,
  548.                                         crossAxisAlignment:
  549.                                             CrossAxisAlignment.center,
  550.                                         children: [
  551.                                           Container(
  552.                                             width: 44.w,
  553.                                             decoration: BoxDecoration(
  554.                                               color: AppThemeData
  555.                                                   .productBoxDecorationColor
  556.                                                   .withOpacity(0.10),
  557.                                               borderRadius: BorderRadius.all(
  558.                                                   Radius.circular(3.r)),
  559.                                             ),
  560.                                             child: Column(
  561.                                               children: [
  562.                                                 Text(
  563.                                                   "${time.days ?? 0}"
  564.                                                       .padLeft(2, "0"),
  565.                                                   style: isMobile(context)
  566.                                                       ? AppThemeData
  567.                                                           .timeDateTextStyle_13
  568.                                                       : AppThemeData
  569.                                                           .timeDateTextStyle_10Tab,
  570.                                                 ),
  571.                                                 Text(
  572.                                                   AppTags.days.tr,
  573.                                                   style: isMobile(context)
  574.                                                       ? AppThemeData
  575.                                                           .timeDateTextStyle_10
  576.                                                       : AppThemeData
  577.                                                           .timeDateTextStyle_8Tab,
  578.                                                 ),
  579.                                               ],
  580.                                             ),
  581.                                           ),
  582.                                           SizedBox(width: 5.w),
  583.                                           Container(
  584.                                             width: 44.w,
  585.                                             decoration: BoxDecoration(
  586.                                               color: AppThemeData
  587.                                                   .productBoxDecorationColor
  588.                                                   .withOpacity(0.10),
  589.                                               borderRadius: BorderRadius.all(
  590.                                                   Radius.circular(3.r)),
  591.                                               boxShadow: [
  592.                                                 BoxShadow(
  593.                                                   spreadRadius: 30.r,
  594.                                                   blurRadius: 5.r,
  595.                                                   color: AppThemeData
  596.                                                       .boxShadowColor
  597.                                                       .withOpacity(0.01),
  598.                                                   offset: const Offset(0, 15),
  599.                                                 ),
  600.                                               ],
  601.                                             ),
  602.                                             child: Column(
  603.                                               children: [
  604.                                                 Text(
  605.                                                   "${time.hours ?? 0}"
  606.                                                       .padLeft(2, "0"),
  607.                                                   style: isMobile(context)
  608.                                                       ? AppThemeData
  609.                                                           .timeDateTextStyle_13
  610.                                                       : AppThemeData
  611.                                                           .timeDateTextStyle_10Tab,
  612.                                                 ),
  613.                                                 Text(
  614.                                                   AppTags.hrs.tr,
  615.                                                   style: isMobile(context)
  616.                                                       ? AppThemeData
  617.                                                           .timeDateTextStyle_10
  618.                                                       : AppThemeData
  619.                                                           .timeDateTextStyle_8Tab,
  620.                                                 ),
  621.                                               ],
  622.                                             ),
  623.                                           ),
  624.                                           SizedBox(width: 5.w),
  625.                                           Container(
  626.                                             width: 44.w,
  627.                                             decoration: BoxDecoration(
  628.                                               color: AppThemeData
  629.                                                   .productBoxDecorationColor
  630.                                                   .withOpacity(0.10),
  631.                                               borderRadius: BorderRadius.all(
  632.                                                   Radius.circular(3.r)),
  633.                                               boxShadow: [
  634.                                                 BoxShadow(
  635.                                                   spreadRadius: 30.r,
  636.                                                   blurRadius: 5.r,
  637.                                                   color: AppThemeData
  638.                                                       .boxShadowColor
  639.                                                       .withOpacity(0.01),
  640.                                                   offset: const Offset(0, 15),
  641.                                                 ),
  642.                                               ],
  643.                                             ),
  644.                                             child: Column(
  645.                                               children: [
  646.                                                 Text(
  647.                                                   " ${time.min ?? 0}"
  648.                                                       .padLeft(2, "0"),
  649.                                                   style: isMobile(context)
  650.                                                       ? AppThemeData
  651.                                                           .timeDateTextStyle_13
  652.                                                       : AppThemeData
  653.                                                           .timeDateTextStyle_10Tab,
  654.                                                 ),
  655.                                                 Text(
  656.                                                   AppTags.minutes.tr,
  657.                                                   style: isMobile(context)
  658.                                                       ? AppThemeData
  659.                                                           .timeDateTextStyle_10
  660.                                                       : AppThemeData
  661.                                                           .timeDateTextStyle_8Tab,
  662.                                                 ),
  663.                                               ],
  664.                                             ),
  665.                                           ),
  666.                                           SizedBox(width: 5.w),
  667.                                           Container(
  668.                                             width: 44.w,
  669.                                             decoration: BoxDecoration(
  670.                                               color: AppThemeData
  671.                                                   .productBoxDecorationColor
  672.                                                   .withOpacity(0.10),
  673.                                               borderRadius: BorderRadius.all(
  674.                                                   Radius.circular(3.r)),
  675.                                               boxShadow: [
  676.                                                 BoxShadow(
  677.                                                   spreadRadius: 30.r,
  678.                                                   blurRadius: 5.r,
  679.                                                   color: AppThemeData
  680.                                                       .boxShadowColor
  681.                                                       .withOpacity(0.01),
  682.                                                   offset: const Offset(0, 15),
  683.                                                 ),
  684.                                               ],
  685.                                             ),
  686.                                             child: Column(
  687.                                               children: [
  688.                                                 Text(
  689.                                                   "${time.sec ?? 0}"
  690.                                                       .padLeft(2, "0"),
  691.                                                   style: isMobile(context)
  692.                                                       ? AppThemeData
  693.                                                           .timeDateTextStyle_13
  694.                                                       : AppThemeData
  695.                                                           .timeDateTextStyle_10Tab,
  696.                                                 ),
  697.                                                 Text(
  698.                                                   AppTags.secs.tr,
  699.                                                   style: isMobile(context)
  700.                                                       ? AppThemeData
  701.                                                           .timeDateTextStyle_10
  702.                                                       : AppThemeData
  703.                                                           .timeDateTextStyle_8Tab,
  704.                                                 ),
  705.                                               ],
  706.                                             ),
  707.                                           ),
  708.                                         ]);
  709.                                   }
  710.                                 }),
  711.                           )
  712.                         : Container(),
  713.                   ),
  714.                   SizedBox(height: 20.h),
  715.  
  716.                   //Product Details
  717.                   detailsController.ordering.value != 2
  718.                       ? Padding(
  719.                           padding: EdgeInsets.symmetric(
  720.                               horizontal: 15.w, vertical: 7.5.h),
  721.                           child: Container(
  722.                             decoration: BoxDecoration(
  723.                               color: Colors.white,
  724.                               borderRadius: BorderRadius.all(
  725.                                 Radius.circular(10.r),
  726.                               ),
  727.                               boxShadow: [
  728.                                 BoxShadow(
  729.                                   spreadRadius: 30.r,
  730.                                   blurRadius: 5.r,
  731.                                   color: AppThemeData.boxShadowColor
  732.                                       .withOpacity(0.01),
  733.                                   offset: const Offset(0, 15),
  734.                                 )
  735.                               ],
  736.                             ),
  737.                             child: Padding(
  738.                               padding: EdgeInsets.all(10.r),
  739.                               child: Column(
  740.                                 mainAxisAlignment: MainAxisAlignment.start,
  741.                                 crossAxisAlignment: CrossAxisAlignment.start,
  742.                                 children: [
  743.                                   //Resting Product Tittle
  744.                                   Row(
  745.                                     crossAxisAlignment:
  746.                                         CrossAxisAlignment.start,
  747.                                     mainAxisAlignment:
  748.                                         MainAxisAlignment.spaceBetween,
  749.                                     children: [
  750.                                       Column(
  751.                                         crossAxisAlignment:
  752.                                             CrossAxisAlignment.start,
  753.                                         children: [
  754.                                           SizedBox(
  755.                                             height: 30.h,
  756.                                             width: 250.w,
  757.                                             child: Text(
  758.                                               detailsModel.data!.title
  759.                                                   .toString(),
  760.                                               maxLines: 3,
  761.                                               style: isMobile(context)
  762.                                                   ? AppThemeData
  763.                                                       .labelTextStyle_16
  764.                                                   : AppThemeData
  765.                                                       .labelTextStyle_12tab,
  766.                                               overflow: TextOverflow.ellipsis,
  767.                                             ),
  768.                                           ),
  769.                                           SizedBox(
  770.                                             width: 250.w,
  771.                                             child: Text(
  772.                                               detailsModel
  773.                                                   .data!.shortDescription
  774.                                                   .toString(),
  775.                                               maxLines: 3,
  776.                                               style: isMobile(context)
  777.                                                   ? AppThemeData
  778.                                                       .hintTextStyle_13
  779.                                                       .copyWith(fontSize: 11.sp)
  780.                                                   : AppThemeData
  781.                                                       .hintTextStyle_13
  782.                                                       .copyWith(
  783.                                                           fontSize: 11.sp),
  784.                                               overflow: TextOverflow.ellipsis,
  785.                                             ),
  786.                                           ),
  787.                                         ],
  788.                                       ),
  789.                                       Container(
  790.                                         height: isMobile(context) ? 18.h : 28.h,
  791.                                         width: isMobile(context) ? 40.w : 60.w,
  792.                                         decoration: BoxDecoration(
  793.                                           color: Colors.white,
  794.                                           borderRadius: BorderRadius.all(
  795.                                               Radius.circular(5.r)),
  796.                                           boxShadow: [
  797.                                             BoxShadow(
  798.                                                 spreadRadius: 0,
  799.                                                 blurRadius: 10,
  800.                                                 color: AppThemeData
  801.                                                     .boxShadowColor
  802.                                                     .withOpacity(0.1),
  803.                                                 offset: const Offset(0, 1))
  804.                                           ],
  805.                                         ),
  806.                                         child: Row(
  807.                                           mainAxisAlignment:
  808.                                               MainAxisAlignment.center,
  809.                                           children: [
  810.                                             isMobile(context)
  811.                                                 ? SvgPicture.asset(
  812.                                                     "assets/icons/reting_icon.svg")
  813.                                                 : SvgPicture.asset(
  814.                                                     "assets/icons/reting_icon.svg",
  815.                                                     width: 15.w,
  816.                                                     height: 15.h),
  817.                                             SizedBox(width: 4.w),
  818.                                             Text(
  819.                                               detailsModel.data!.rating
  820.                                                   .toString(),
  821.                                               style: AppThemeData
  822.                                                   .reatingTextStyle_12,
  823.                                             ),
  824.                                           ],
  825.                                         ),
  826.                                       ),
  827.                                     ],
  828.                                   ),
  829.                                   SizedBox(height: 13.h),
  830.  
  831.                                   // Price Increment/Decrement
  832.                                   detailsModel.data!.isClassified!
  833.                                       ? Container(
  834.                                           alignment: Alignment.center,
  835.                                           decoration: BoxDecoration(
  836.                                             border: Border.all(
  837.                                               color:
  838.                                                   AppThemeData.borderSideColor,
  839.                                             ),
  840.                                             color: Colors.white,
  841.                                             borderRadius: BorderRadius.all(
  842.                                               Radius.circular(3.r),
  843.                                             ),
  844.                                           ),
  845.                                           child: Row(
  846.                                             children: [
  847.                                               SizedBox(width: 10.w),
  848.                                               SvgPicture.asset(
  849.                                                   "assets/icons/details_call_button.svg"),
  850.                                               SizedBox(width: 32.w),
  851.                                               Obx(
  852.                                                 () => InkWell(
  853.                                                   onTap: () {
  854.                                                     detailsController
  855.                                                         .isObsecureUpdate();
  856.                                                   },
  857.                                                   child: Column(
  858.                                                       mainAxisAlignment:
  859.                                                           MainAxisAlignment
  860.                                                               .start,
  861.                                                       crossAxisAlignment:
  862.                                                           CrossAxisAlignment
  863.                                                               .start,
  864.                                                       children: [
  865.                                                         Text(
  866.                                                           detailsController
  867.                                                                   .isObsecure
  868.                                                                   .value
  869.                                                               ? "XXXXXXXXXXX"
  870.                                                               : detailsModel
  871.                                                                   .data!
  872.                                                                   .classifiedContactInfo!
  873.                                                                   .phone
  874.                                                                   .toString(),
  875.                                                           style: AppThemeData
  876.                                                               .detailsScreenPhoneNumber,
  877.                                                         ),
  878.                                                         Text(
  879.                                                           AppTags
  880.                                                               .clickHereToSeePhone
  881.                                                               .tr,
  882.                                                           style: AppThemeData
  883.                                                               .detailsScreenPhoneNumberShow,
  884.                                                         ),
  885.                                                       ]),
  886.                                                 ),
  887.                                               )
  888.                                             ],
  889.                                           ),
  890.                                         )
  891.                                       : Row(
  892.                                           mainAxisAlignment:
  893.                                               MainAxisAlignment.spaceBetween,
  894.                                           children: [
  895.                                             detailsModel.data!
  896.                                                         .specialDiscount ==
  897.                                                     "0.000"
  898.                                                 ? Row(
  899.                                                     children: [
  900.                                                       // Text(
  901.                                                       //   "${currencyConverterController.convertCurrency(detailsModel.data!.price)}",
  902.                                                       //   style: isMobile(context)
  903.                                                       //       ? AppThemeData
  904.                                                       //           .seccessfulPayTextStyle_18
  905.                                                       //       : AppThemeData
  906.                                                       //           .headerTextStyle_14,
  907.                                                       // ),
  908.                                                     ],
  909.                                                   )
  910.                                                 : Row(
  911.                                                     children: [
  912.                                                       // Text(
  913.                                                       //   "${currencyConverterController.convertCurrency(detailsModel.data!.discountPrice)}",
  914.                                                       //   style: isMobile(context)
  915.                                                       //       ? AppThemeData
  916.                                                       //           .seccessfulPayTextStyle_18
  917.                                                       //       : AppThemeData
  918.                                                       //           .headerTextStyle_14,
  919.                                                       // ),
  920.                                                       SizedBox(width: 5.w),
  921.                                                       // Text(
  922.                                                       //   "${currencyConverterController.convertCurrency(detailsModel.data!.price)}",
  923.                                                       //   style: TextStyle(
  924.                                                       //     decoration: TextDecoration
  925.                                                       //         .lineThrough,
  926.                                                       //     fontSize: isMobile(context)
  927.                                                       //         ? 14.sp
  928.                                                       //         : 11.sp,
  929.                                                       //     fontFamily: "Poppins",
  930.                                                       //   ),
  931.                                                       // ),
  932.                                                     ],
  933.                                                   ),
  934.                                             /*detailsModel.data!.isCatalog!
  935.                                           ? const SizedBox()
  936.                                           : Obx(
  937.                                               () => SizedBox(
  938.                                                 width: 75.w,
  939.                                                 child: Row(
  940.                                                   mainAxisAlignment:
  941.                                                       MainAxisAlignment
  942.                                                           .spaceBetween,
  943.                                                   children: [
  944.                                                     InkWell(
  945.                                                       onTap: () {
  946.                                                         detailsController
  947.                                                             .decrementProductQuantity();
  948.                                                       },
  949.                                                       child: Container(
  950.                                                         height: 23.h,
  951.                                                         width: 23.w,
  952.                                                         alignment:
  953.                                                             Alignment.center,
  954.                                                         decoration:
  955.                                                             BoxDecoration(
  956.                                                           color: AppThemeData.borderSideColor,
  957.                                                           borderRadius:
  958.                                                               BorderRadius.all(
  959.                                                                   Radius
  960.                                                                       .circular(
  961.                                                                           3.r)),
  962.                                                         ),
  963.                                                         child: Icon(
  964.                                                             Icons.remove,
  965.                                                             size: 16.r),
  966.                                                       ),
  967.                                                     ),
  968.                                                     AnimatedSwitcher(
  969.                                                       duration: const Duration(
  970.                                                           milliseconds: 500),
  971.                                                       transitionBuilder:
  972.                                                           (Widget child,
  973.                                                               Animation<double>
  974.                                                                   animation) {
  975.                                                         return ScaleTransition(
  976.                                                           scale: animation,
  977.                                                           child: child,
  978.                                                         );
  979.                                                       },
  980.                                                       child: Text(
  981.                                                         detailsController
  982.                                                             .productQuantity
  983.                                                             .value
  984.                                                             .toString(),
  985.                                                         style: isMobile(context)
  986.                                                             ? const TextStyle()
  987.                                                             : AppThemeData
  988.                                                                 .labelTextStyle_12tab
  989.                                                                 .copyWith(
  990.                                                                 fontFamily:
  991.                                                                     "Poppins",
  992.                                                                 fontSize: 13.sp,
  993.                                                               ),
  994.                                                         key: ValueKey(
  995.                                                             detailsController
  996.                                                                 .productQuantity
  997.                                                                 .value),
  998.                                                       ),
  999.                                                     ),
  1000.                                                     InkWell(
  1001.                                                       onTap: () {
  1002.                                                         detailsController
  1003.                                                             .incrementProductQuantity();
  1004.                                                       },
  1005.                                                       child: Container(
  1006.                                                           height: 23.h,
  1007.                                                           width: 23.w,
  1008.                                                           alignment:
  1009.                                                               Alignment.center,
  1010.                                                           decoration:
  1011.                                                               BoxDecoration(
  1012.                                                             color: AppThemeData.borderSideColor,
  1013.                                                             borderRadius:
  1014.                                                                 BorderRadius
  1015.                                                                     .all(
  1016.                                                               Radius.circular(
  1017.                                                                   3.r),
  1018.                                                             ),
  1019.                                                           ),
  1020.                                                           child: Icon(
  1021.                                                             Icons.add,
  1022.                                                             size: 16.r,
  1023.                                                           )),
  1024.                                                     ),
  1025.                                                   ],
  1026.                                                 ),
  1027.                                               ),
  1028.                                             ),*/
  1029.                                           ],
  1030.                                         ),
  1031.                                   SizedBox(height: 20.h),
  1032.  
  1033.                                   // Delivery Time
  1034. /*                            Container(
  1035.                               alignment: Alignment.center,
  1036.                               decoration: BoxDecoration(
  1037.                                 border: Border.all(
  1038.                                   color: AppThemeData.borderSideColor,
  1039.                                 ),
  1040.                                 color: Colors.white,
  1041.                                 borderRadius: BorderRadius.all(
  1042.                                   Radius.circular(3.r),
  1043.                                 ),
  1044.                               ),
  1045.                               child: Padding(
  1046.                                 padding: EdgeInsets.all(10.r),
  1047.                                 child: Row(
  1048.                                   mainAxisAlignment:
  1049.                                       MainAxisAlignment.spaceBetween,
  1050.                                   children: [
  1051.                                     Row(
  1052.                                       children: [
  1053.                                         Text("${AppTags.delivery.tr}:",
  1054.                                             style: isMobile(context)
  1055.                                                 ? AppThemeData.titleTextStyle_13
  1056.                                                 : AppThemeData
  1057.                                                     .titleTextStyleTab),
  1058.                                         SizedBox(width: 5.w),
  1059.                                         Text(
  1060.                                           "${detailsModel.data!.delivery.toString()} days, ${detailsModel.data!.returnData.toString()} days return",
  1061.                                           style: isMobile(context)
  1062.                                               ? AppThemeData.titleTextStyle_13
  1063.                                               : AppThemeData.titleTextStyleTab,
  1064.                                         ),
  1065.                                       ],
  1066.                                     ),
  1067.                                     // const Icon(Icons.arrow_forward_ios_rounded,size: 16,color:  Color(0xff999999))
  1068.                                   ],
  1069.                                 ),
  1070.                               ),
  1071.                             )*/
  1072.                                   detailsModel.data!.hasVariant!
  1073.                                       ? SizedBox(height: 10.h)
  1074.                                       : const SizedBox(),
  1075.  
  1076.                                   //Color Attribute
  1077.                                   detailsModel.data!.hasVariant!
  1078.                                       ? Column(
  1079.                                           children: [
  1080.                                             Container(
  1081.                                               alignment: Alignment.center,
  1082.                                               decoration: BoxDecoration(
  1083.                                                 border: Border.all(
  1084.                                                   color: AppThemeData
  1085.                                                       .borderSideColor,
  1086.                                                 ),
  1087.                                                 color: Colors.white,
  1088.                                                 borderRadius: BorderRadius.all(
  1089.                                                   Radius.circular(3.r),
  1090.                                                 ),
  1091.                                               ),
  1092.                                               child: Padding(
  1093.                                                 padding: EdgeInsets.all(10.w),
  1094.                                                 child: Column(
  1095.                                                   children: [
  1096.                                                     Row(
  1097.                                                       children: [
  1098.                                                         Text(
  1099.                                                           "${AppTags.color.tr}:",
  1100.                                                           style: isMobile(
  1101.                                                                   context)
  1102.                                                               ? AppThemeData
  1103.                                                                   .whyUsTextStyle_13
  1104.                                                               : AppThemeData
  1105.                                                                   .whyUsTextStyle_10Tab,
  1106.                                                         ),
  1107.                                                       ],
  1108.                                                     ),
  1109.                                                     SizedBox(height: 5.h),
  1110.                                                     SizedBox(
  1111.                                                       height: 35.h,
  1112.                                                       child: ListView.builder(
  1113.                                                           itemCount:
  1114.                                                               detailsModel
  1115.                                                                   .data!
  1116.                                                                   .colors!
  1117.                                                                   .length,
  1118.                                                           scrollDirection:
  1119.                                                               Axis.horizontal,
  1120.                                                           itemBuilder:
  1121.                                                               (context, index) {
  1122.                                                             return InkWell(
  1123.                                                               onTap: () {
  1124.                                                                 _colorSelectionController
  1125.                                                                     .changeColorSelection(
  1126.                                                                   index: index,
  1127.                                                                   colorName: detailsModel
  1128.                                                                       .data!
  1129.                                                                       .colors![
  1130.                                                                           index]
  1131.                                                                       .name
  1132.                                                                       .toString(),
  1133.                                                                   colorId: detailsModel
  1134.                                                                       .data!
  1135.                                                                       .colors![
  1136.                                                                           index]
  1137.                                                                       .id
  1138.                                                                       .toString(),
  1139.                                                                 );
  1140.                                                               },
  1141.                                                               child: Padding(
  1142.                                                                 padding: EdgeInsets
  1143.                                                                     .only(
  1144.                                                                         right: 10
  1145.                                                                             .w),
  1146.                                                                 child:
  1147.                                                                     Container(
  1148.                                                                   decoration:
  1149.                                                                       BoxDecoration(
  1150.                                                                     border:
  1151.                                                                         Border
  1152.                                                                             .all(
  1153.                                                                       color: Color(int.parse("0xff${detailsModel.data!.colors![index].hexCode.toString()}") ==
  1154.                                                                               AppThemeData
  1155.                                                                                   .colorWhite
  1156.                                                                           ? AppThemeData
  1157.                                                                               .colorBlack
  1158.                                                                           : int.parse(
  1159.                                                                               "0xff${detailsModel.data!.colors![index].hexCode.toString()}")),
  1160.                                                                     ),
  1161.                                                                     borderRadius:
  1162.                                                                         BorderRadius
  1163.                                                                             .all(
  1164.                                                                       Radius.circular(
  1165.                                                                           5.r),
  1166.                                                                     ),
  1167.                                                                   ),
  1168.                                                                   child:
  1169.                                                                       Padding(
  1170.                                                                     padding: EdgeInsets
  1171.                                                                         .all(4
  1172.                                                                             .r),
  1173.                                                                     child: Obx(() => Container(
  1174.                                                                         decoration: BoxDecoration(
  1175.                                                                           color:
  1176.                                                                               Color(int.parse("0xff${detailsModel.data!.colors![index].hexCode.toString()}")),
  1177.                                                                           borderRadius:
  1178.                                                                               BorderRadius.all(
  1179.                                                                             Radius.circular(5.r),
  1180.                                                                           ),
  1181.                                                                           boxShadow: [
  1182.                                                                             BoxShadow(
  1183.                                                                               color: Colors.grey.withOpacity(0.4),
  1184.                                                                               spreadRadius: 0.5,
  1185.                                                                               blurRadius: 0.4,
  1186.                                                                               offset: const Offset(0, 0), // changes position of shadow
  1187.                                                                             ),
  1188.                                                                           ],
  1189.                                                                         ),
  1190.                                                                         height: 28.h,
  1191.                                                                         width: isMobile(context) ? 25.w : 18.w,
  1192.                                                                         child: _colorSelectionController.selectedIndex.value == index
  1193.                                                                             ? Padding(
  1194.                                                                                 padding: EdgeInsets.all(6.r),
  1195.                                                                                 child: SvgPicture.asset(
  1196.                                                                                   "assets/icons/confirm.svg",
  1197.                                                                                   color: Color(int.parse("0xff${detailsModel.data!.colors![index].hexCode.toString()}") == AppThemeData.colorWhite ? AppThemeData.colorBlack : AppThemeData.colorWhite),
  1198.                                                                                 ),
  1199.                                                                               )
  1200.                                                                             : const SizedBox())),
  1201.                                                                   ),
  1202.                                                                 ),
  1203.                                                               ),
  1204.                                                             );
  1205.                                                           }),
  1206.                                                     )
  1207.                                                   ],
  1208.                                                 ),
  1209.                                               ),
  1210.                                             ),
  1211.                                             SizedBox(height: 8.h),
  1212.                                             Container(
  1213.                                               alignment: Alignment.center,
  1214.                                               child: ListView.builder(
  1215.                                                 physics:
  1216.                                                     const NeverScrollableScrollPhysics(),
  1217.                                                 shrinkWrap: true,
  1218.                                                 itemCount: detailsModel
  1219.                                                     .data!.attributes!.length,
  1220.                                                 itemBuilder: (context, i) {
  1221.                                                   return Padding(
  1222.                                                     padding: EdgeInsets.only(
  1223.                                                         bottom: 8.h),
  1224.                                                     child: Container(
  1225.                                                       decoration: BoxDecoration(
  1226.                                                         border: Border.all(
  1227.                                                           color: AppThemeData
  1228.                                                               .borderSideColor,
  1229.                                                         ),
  1230.                                                         color: Colors.white,
  1231.                                                         borderRadius:
  1232.                                                             BorderRadius.all(
  1233.                                                           Radius.circular(3.r),
  1234.                                                         ),
  1235.                                                       ),
  1236.                                                       child: Padding(
  1237.                                                         padding: EdgeInsets
  1238.                                                             .symmetric(
  1239.                                                                 vertical: 8.h,
  1240.                                                                 horizontal:
  1241.                                                                     8.w),
  1242.                                                         child: Column(
  1243.                                                           mainAxisAlignment:
  1244.                                                               MainAxisAlignment
  1245.                                                                   .start,
  1246.                                                           crossAxisAlignment:
  1247.                                                               CrossAxisAlignment
  1248.                                                                   .start,
  1249.                                                           children: [
  1250.                                                             Text(
  1251.                                                               "${detailsModel.data!.attributes![i].title!.toString()}:",
  1252.                                                               style: AppThemeData
  1253.                                                                   .whyUsTextStyle_13,
  1254.                                                             ),
  1255.                                                             SizedBox(
  1256.                                                               height: 5.h,
  1257.                                                             ),
  1258.                                                             SizedBox(
  1259.                                                               height: 24.h,
  1260.                                                               width:
  1261.                                                                   MediaQuery.of(
  1262.                                                                           context)
  1263.                                                                       .size
  1264.                                                                       .width,
  1265.                                                               child: ListView
  1266.                                                                   .builder(
  1267.                                                                 shrinkWrap:
  1268.                                                                     true,
  1269.                                                                 padding: EdgeInsets
  1270.                                                                     .only(
  1271.                                                                         right: 15
  1272.                                                                             .w),
  1273.                                                                 scrollDirection:
  1274.                                                                     Axis.horizontal,
  1275.                                                                 itemCount: detailsModel
  1276.                                                                     .data!
  1277.                                                                     .attributes![
  1278.                                                                         i]
  1279.                                                                     .attributeValue!
  1280.                                                                     .length,
  1281.                                                                 itemBuilder:
  1282.                                                                     (context,
  1283.                                                                         index) {
  1284.                                                                   return Padding(
  1285.                                                                     padding: EdgeInsets.only(
  1286.                                                                         right: 8
  1287.                                                                             .w),
  1288.                                                                     child:
  1289.                                                                         InkWell(
  1290.                                                                       onTap:
  1291.                                                                           () {
  1292.                                                                         _colorSelectionController.changeAttrSelection(
  1293.                                                                             attrIndex:
  1294.                                                                                 i,
  1295.                                                                             value:
  1296.                                                                                 index);
  1297.                                                                         _colorSelectionController.insertAttrNameToList(
  1298.                                                                             name:
  1299.                                                                                 detailsModel.data!.attributes![i].attributeValue![index].value!,
  1300.                                                                             index: i);
  1301.                                                                         _colorSelectionController.insertAttrIdToList(
  1302.                                                                             id: detailsModel.data!.attributes![i].attributeValue![index].id!
  1303.                                                                                 .toString(),
  1304.                                                                             index:
  1305.                                                                                 i);
  1306.                                                                       },
  1307.                                                                       child:
  1308.                                                                           Obx(
  1309.                                                                         () =>
  1310.                                                                             Container(
  1311.                                                                           height:
  1312.                                                                               24.h,
  1313.                                                                           alignment:
  1314.                                                                               Alignment.center,
  1315.                                                                           decoration:
  1316.                                                                               BoxDecoration(
  1317.                                                                             border:
  1318.                                                                                 Border.all(
  1319.                                                                               color: _colorSelectionController.selectedArray[i] == index ? const Color(0xffF51E46) : const Color(0xffF4F4F4),
  1320.                                                                             ),
  1321.                                                                             borderRadius:
  1322.                                                                                 BorderRadius.all(
  1323.                                                                               Radius.circular(3.r),
  1324.                                                                             ),
  1325.                                                                           ),
  1326.                                                                           child:
  1327.                                                                               Padding(
  1328.                                                                             padding:
  1329.                                                                                 EdgeInsets.symmetric(horizontal: 8.w),
  1330.                                                                             child:
  1331.                                                                                 Text(
  1332.                                                                               detailsModel.data!.attributes![i].attributeValue![index].value!,
  1333.                                                                               style: _colorSelectionController.selectedArray[i] == index
  1334.                                                                                   ? isMobile(context)
  1335.                                                                                       ? AppThemeData.detwailsScreenBottomSheetTitle.copyWith(color: AppThemeData.productBoxDecorationColor)
  1336.                                                                                       : AppThemeData.detailsScreenBottomSheetTitleTab.copyWith(color: AppThemeData.productBoxDecorationColor)
  1337.                                                                                   : isMobile(context)
  1338.                                                                                       ? AppThemeData.detwailsScreenBottomSheetTitle
  1339.                                                                                       : AppThemeData.detailsScreenBottomSheetTitleTab,
  1340.                                                                             ),
  1341.                                                                           ),
  1342.                                                                         ),
  1343.                                                                       ),
  1344.                                                                     ),
  1345.                                                                   );
  1346.                                                                 },
  1347.                                                               ),
  1348.                                                             ),
  1349.                                                           ],
  1350.                                                         ),
  1351.                                                       ),
  1352.                                                     ),
  1353.                                                   );
  1354.                                                 },
  1355.                                               ),
  1356.                                             ),
  1357.                                           ],
  1358.                                         )
  1359.                                       : const SizedBox(),
  1360.                                   //Refund section
  1361.                                   LocalDataHelper().isRefundAddonAvailable()
  1362.                                       ? Container(
  1363.                                           alignment: Alignment.center,
  1364.                                           decoration: BoxDecoration(
  1365.                                             border: Border.all(
  1366.                                               color:
  1367.                                                   AppThemeData.borderSideColor,
  1368.                                             ),
  1369.                                             color: Colors.white,
  1370.                                             borderRadius: BorderRadius.all(
  1371.                                               Radius.circular(3.r),
  1372.                                             ),
  1373.                                           ),
  1374.                                           child: Padding(
  1375.                                             padding: EdgeInsets.all(4.r),
  1376.                                             child: Column(
  1377.                                               children: [
  1378.                                                 Row(
  1379.                                                   mainAxisAlignment:
  1380.                                                       MainAxisAlignment.start,
  1381.                                                   crossAxisAlignment:
  1382.                                                       CrossAxisAlignment.start,
  1383.                                                   children: [
  1384.                                                     Container(
  1385.                                                       height: 44.h,
  1386.                                                       width: 44.w,
  1387.                                                       alignment:
  1388.                                                           Alignment.center,
  1389.                                                       decoration: BoxDecoration(
  1390.                                                         //color: Color(0xffF5F5F5),
  1391.                                                         borderRadius:
  1392.                                                             BorderRadius.all(
  1393.                                                           Radius.circular(5.r),
  1394.                                                         ),
  1395.                                                       ),
  1396.                                                       child: LocalDataHelper()
  1397.                                                           .getRefundIcon(),
  1398.                                                     ),
  1399.                                                     Column(
  1400.                                                       crossAxisAlignment:
  1401.                                                           CrossAxisAlignment
  1402.                                                               .start,
  1403.                                                       children: [
  1404.                                                         Text(
  1405.                                                           LocalDataHelper()
  1406.                                                                           .getRefundAddon() !=
  1407.                                                                       null &&
  1408.                                                                   LocalDataHelper()
  1409.                                                                           .getRefundAddon()!
  1410.                                                                           .addonData !=
  1411.                                                                       null
  1412.                                                               ? LocalDataHelper()
  1413.                                                                   .getRefundAddon()!
  1414.                                                                   .addonData!
  1415.                                                                   .title!
  1416.                                                               : "",
  1417.                                                           style: isMobile(
  1418.                                                                   context)
  1419.                                                               ? AppThemeData
  1420.                                                                   .titleTextStyle_13
  1421.                                                               : AppThemeData
  1422.                                                                   .titleTextStyleTab,
  1423.                                                           overflow: TextOverflow
  1424.                                                               .ellipsis,
  1425.                                                         ),
  1426.                                                         Text(
  1427.                                                             LocalDataHelper()
  1428.                                                                             .getRefundAddon() !=
  1429.                                                                         null &&
  1430.                                                                     LocalDataHelper()
  1431.                                                                             .getRefundAddon()!
  1432.                                                                             .addonData !=
  1433.                                                                         null
  1434.                                                                 ? LocalDataHelper()
  1435.                                                                     .getRefundAddon()!
  1436.                                                                     .addonData!
  1437.                                                                     .subTitle!
  1438.                                                                 : "",
  1439.                                                             style: isMobile(
  1440.                                                                     context)
  1441.                                                                 ? AppThemeData
  1442.                                                                     .whyUsTextStyle_13
  1443.                                                                 : AppThemeData
  1444.                                                                     .whyUsTextStyle_10Tab,
  1445.                                                             overflow:
  1446.                                                                 TextOverflow
  1447.                                                                     .ellipsis),
  1448.                                                       ],
  1449.                                                     ),
  1450.                                                   ],
  1451.                                                 ),
  1452.                                               ],
  1453.                                             ),
  1454.                                           ),
  1455.                                         )
  1456.                                       : const SizedBox(),
  1457.                                   LocalDataHelper().isRefundAddonAvailable()
  1458.                                       ? SizedBox(height: 10.h)
  1459.                                       : const SizedBox(),
  1460.  
  1461.                                   //Social shear
  1462.                                   Container(
  1463.                                     alignment: Alignment.center,
  1464.                                     decoration: BoxDecoration(
  1465.                                       border: Border.all(
  1466.                                         color: AppThemeData.borderSideColor,
  1467.                                       ),
  1468.                                       color: Colors.white,
  1469.                                       borderRadius: BorderRadius.all(
  1470.                                         Radius.circular(3.r),
  1471.                                       ),
  1472.                                     ),
  1473.                                     child: Padding(
  1474.                                       padding: EdgeInsets.all(10.r),
  1475.                                       child: Column(
  1476.                                         children: [
  1477.                                           Row(
  1478.                                             mainAxisAlignment:
  1479.                                                 MainAxisAlignment.start,
  1480.                                             crossAxisAlignment:
  1481.                                                 CrossAxisAlignment.start,
  1482.                                             children: [
  1483.                                               /*InkWell(
  1484.                                           onTap: () {
  1485.                                             Get.toNamed(
  1486.                                               Routes.wvScreen,
  1487.                                               parameters: {
  1488.                                                 'url': detailsModel
  1489.                                                     .data!.links!.facebook
  1490.                                                     .toString(),
  1491.                                                 'title': "Facebook",
  1492.                                               },
  1493.                                             );
  1494.                                           },
  1495.                                           child: Container(
  1496.                                             height:
  1497.                                             isMobile(context) ? 38.h : 40.h,
  1498.                                             width:
  1499.                                             isMobile(context) ? 38.w : 40.w,
  1500.                                             alignment: Alignment.center,
  1501.                                             decoration: BoxDecoration(
  1502.                                               color: const Color(0xffF5F5F5),
  1503.                                               borderRadius: BorderRadius.all(
  1504.                                                 Radius.circular(5.r),
  1505.                                               ),
  1506.                                             ),
  1507.                                             child: SvgPicture.asset(
  1508.                                               "assets/icons/details/facebook.svg",
  1509.                                               height: 15.h,
  1510.                                               width: 8.w,
  1511.                                             ),
  1512.                                           ),
  1513.                                         ),
  1514.                                         SizedBox(width: 8.w),
  1515.                                         InkWell(
  1516.                                           onTap: () {
  1517.                                             Get.toNamed(
  1518.                                               Routes.wvScreen,
  1519.                                               parameters: {
  1520.                                                 'url': detailsModel
  1521.                                                     .data!.links!.linkedin
  1522.                                                     .toString(),
  1523.                                                 'title': "Linkedin",
  1524.                                               },
  1525.                                             );
  1526.                                           },
  1527.                                           child: Container(
  1528.                                             height:
  1529.                                             isMobile(context) ? 38.h : 40.h,
  1530.                                             width:
  1531.                                             isMobile(context) ? 38.w : 40.w,
  1532.                                             alignment: Alignment.center,
  1533.                                             decoration: BoxDecoration(
  1534.                                               color: const Color(0xffF5F5F5),
  1535.                                               borderRadius: BorderRadius.all(
  1536.                                                 Radius.circular(5.r),
  1537.                                               ),
  1538.                                             ),
  1539.                                             child: SvgPicture.asset(
  1540.                                               "assets/icons/details/linkedin.svg",
  1541.                                               height: 14.h,
  1542.                                               width: 14.w,
  1543.                                             ),
  1544.                                           ),
  1545.                                         ),
  1546.                                         SizedBox(width: 8.h),
  1547.                                         InkWell(
  1548.                                           onTap: () {
  1549.                                             Get.toNamed(
  1550.                                               Routes.wvScreen,
  1551.                                               parameters: {
  1552.                                                 'url': detailsModel
  1553.                                                     .data!.links!.twitter
  1554.                                                     .toString(),
  1555.                                                 'title': "Twitter",
  1556.                                               },
  1557.                                             );
  1558.                                           },
  1559.                                           child: Container(
  1560.                                             height:
  1561.                                             isMobile(context) ? 38.h : 40.h,
  1562.                                             width:
  1563.                                             isMobile(context) ? 38.w : 40.w,
  1564.                                             alignment: Alignment.center,
  1565.                                             decoration: BoxDecoration(
  1566.                                               color: const Color(0xffF5F5F5),
  1567.                                               borderRadius: BorderRadius.all(
  1568.                                                 Radius.circular(5.r),
  1569.                                               ),
  1570.                                             ),
  1571.                                             child: SvgPicture.asset(
  1572.                                               "assets/icons/details/twitter.svg",
  1573.                                               height: 14.h,
  1574.                                               width: 17.w,
  1575.                                             ),
  1576.                                           ),
  1577.                                         ),
  1578.                                         SizedBox(width: 8.w),*/
  1579.                                               Expanded(
  1580.                                                 child: InkWell(
  1581.                                                   onTap: () {
  1582.                                                     detailsController
  1583.                                                         .generateDeepLink();
  1584.                                                   },
  1585.                                                   child: Container(
  1586.                                                     height: isMobile(context)
  1587.                                                         ? 38.h
  1588.                                                         : 40.h,
  1589.                                                     width: isMobile(context)
  1590.                                                         ? 38.w
  1591.                                                         : 40.w,
  1592.                                                     alignment: Alignment.center,
  1593.                                                     decoration: BoxDecoration(
  1594.                                                       color: const Color(
  1595.                                                           0xffF5F5F5),
  1596.                                                       borderRadius:
  1597.                                                           BorderRadius.all(
  1598.                                                         Radius.circular(5.r),
  1599.                                                       ),
  1600.                                                     ),
  1601.                                                     child: Row(
  1602.                                                       mainAxisAlignment:
  1603.                                                           MainAxisAlignment
  1604.                                                               .center,
  1605.                                                       children: [
  1606.                                                         const Icon(Icons.share,
  1607.                                                             size: 17),
  1608.                                                         SizedBox(width: 6.w),
  1609.                                                         const Text(
  1610.                                                           'Share',
  1611.                                                           style: TextStyle(
  1612.                                                               fontSize: 11),
  1613.                                                         )
  1614.                                                       ],
  1615.                                                     ),
  1616.                                                   ),
  1617.                                                 ),
  1618.                                               ),
  1619.                                               SizedBox(width: 8.w),
  1620.                                               Expanded(
  1621.                                                 child: InkWell(
  1622.                                                   onTap: () async {
  1623.                                                     var url = Uri.parse(
  1624.                                                         "tel:7305845551");
  1625.                                                     if (await canLaunchUrl(
  1626.                                                         url)) {
  1627.                                                       await launchUrl(url);
  1628.                                                     } else {
  1629.                                                       throw 'Could not launch $url';
  1630.                                                     }
  1631.                                                   },
  1632.                                                   child: Container(
  1633.                                                     height: isMobile(context)
  1634.                                                         ? 38.h
  1635.                                                         : 40.h,
  1636.                                                     width: isMobile(context)
  1637.                                                         ? 150.w
  1638.                                                         : 150.w,
  1639.                                                     alignment: Alignment.center,
  1640.                                                     decoration: BoxDecoration(
  1641.                                                       color: const Color(
  1642.                                                           0xffF5F5F5),
  1643.                                                       borderRadius:
  1644.                                                           BorderRadius.all(
  1645.                                                         Radius.circular(5.r),
  1646.                                                       ),
  1647.                                                     ),
  1648.                                                     child: Row(
  1649.                                                       mainAxisAlignment:
  1650.                                                           MainAxisAlignment
  1651.                                                               .center,
  1652.                                                       children: [
  1653.                                                         const Icon(
  1654.                                                           Icons.support_agent,
  1655.                                                           color: Colors.black,
  1656.                                                         ),
  1657.                                                         SizedBox(width: 6.w),
  1658.                                                         const Text(
  1659.                                                           'Technical support',
  1660.                                                           style: TextStyle(
  1661.                                                               fontSize: 11),
  1662.                                                         )
  1663.                                                       ],
  1664.                                                     ),
  1665.                                                   ),
  1666.                                                 ),
  1667.                                               ),
  1668.                                             ],
  1669.                                           ),
  1670.                                         ],
  1671.                                       ),
  1672.                                     ),
  1673.                                   ),
  1674.                                   SizedBox(height: 10.h),
  1675.                                   //Specification
  1676.                                   detailsModel.data!.isClassified!
  1677.                                       ? const SizedBox()
  1678.                                       : Container(
  1679.                                           alignment: Alignment.center,
  1680.                                           decoration: BoxDecoration(
  1681.                                             border: Border.all(
  1682.                                               color:
  1683.                                                   AppThemeData.borderSideColor,
  1684.                                             ),
  1685.                                             color: Colors.white,
  1686.                                             borderRadius: BorderRadius.all(
  1687.                                                 Radius.circular(3.r)),
  1688.                                           ),
  1689.                                           child: Padding(
  1690.                                             padding: EdgeInsets.all(10.r),
  1691.                                             child: Column(
  1692.                                               children: [
  1693.                                                 detailsModel
  1694.                                                         .data!
  1695.                                                         .tech_specification!
  1696.                                                         .isNotEmpty
  1697.                                                     ? Obx(
  1698.                                                         () => InkWell(
  1699.                                                           onTap: () async {
  1700.                                                             /*detailsController.openFile(
  1701.                                                     detailsModel
  1702.                                                         .data!.specifications);*/
  1703.                                                             detailsController
  1704.                                                                 .isSpecificUpdate();
  1705.                                                           },
  1706.                                                           child: Row(
  1707.                                                             mainAxisAlignment:
  1708.                                                                 MainAxisAlignment
  1709.                                                                     .spaceBetween,
  1710.                                                             children: [
  1711.                                                               Text(
  1712.                                                                   "${AppTags.specifications.tr}:",
  1713.                                                                   style: isMobile(
  1714.                                                                           context)
  1715.                                                                       ? AppThemeData
  1716.                                                                           .titleTextStyle_14
  1717.                                                                       : AppThemeData
  1718.                                                                           .titleTextStyle_11Tab),
  1719.                                                               detailsController
  1720.                                                                       .isSpecific
  1721.                                                                       .value
  1722.                                                                   ? Icon(
  1723.                                                                       Icons
  1724.                                                                           .remove,
  1725.                                                                       size:
  1726.                                                                           16.r,
  1727.                                                                       color: AppThemeData
  1728.                                                                           .detailsIconColor)
  1729.                                                                   : Icon(
  1730.                                                                       Icons.add,
  1731.                                                                       size:
  1732.                                                                           16.r,
  1733.                                                                       color: AppThemeData
  1734.                                                                           .detailsIconColor)
  1735.                                                             ],
  1736.                                                           ),
  1737.                                                         ),
  1738.                                                       )
  1739.                                                     : const SizedBox(),
  1740.                                                 Obx(
  1741.                                                   () =>
  1742.                                                       detailsController
  1743.                                                               .isSpecific.value
  1744.                                                           ? Column(
  1745.                                                               children: [
  1746.                                                                 detailsModel
  1747.                                                                         .data!
  1748.                                                                         .tech_specification!
  1749.                                                                         .isNotEmpty
  1750.                                                                     ? SizedBox(
  1751.                                                                         child: Text(detailsModel
  1752.                                                                             .data!
  1753.                                                                             .tech_specification!
  1754.                                                                             .toString()),
  1755.                                                                       )
  1756.                                                                     : Padding(
  1757.                                                                         padding:
  1758.                                                                             EdgeInsets.all(8.r),
  1759.                                                                         child:
  1760.                                                                             Text(
  1761.                                                                           AppTags
  1762.                                                                               .noSpecifications
  1763.                                                                               .tr,
  1764.                                                                           style: AppThemeData
  1765.                                                                               .labelTextStyle_12tab
  1766.                                                                               .copyWith(fontFamily: "Poppins"),
  1767.                                                                         ),
  1768.                                                                       )
  1769.                                                               ],
  1770.                                                             )
  1771.                                                           : Row(),
  1772.                                                 )
  1773.                                               ],
  1774.                                             ),
  1775.                                           ),
  1776.                                         ),
  1777.                                   SizedBox(height: 10.h),
  1778.  
  1779.                                   //Description
  1780.                                   Container(
  1781.                                     alignment: Alignment.center,
  1782.                                     decoration: BoxDecoration(
  1783.                                       border: Border.all(
  1784.                                         color: AppThemeData.borderSideColor,
  1785.                                       ),
  1786.                                       color: Colors.white,
  1787.                                       borderRadius: BorderRadius.all(
  1788.                                         Radius.circular(3.r),
  1789.                                       ),
  1790.                                     ),
  1791.                                     child: Padding(
  1792.                                       padding: EdgeInsets.all(10.r),
  1793.                                       child: Column(
  1794.                                         children: [
  1795.                                           Obx(
  1796.                                             () => InkWell(
  1797.                                               onTap: () {
  1798.                                                 detailsController
  1799.                                                     .isDeliveryUpdate();
  1800.                                               },
  1801.                                               child: Row(
  1802.                                                 mainAxisAlignment:
  1803.                                                     MainAxisAlignment
  1804.                                                         .spaceBetween,
  1805.                                                 children: [
  1806.                                                   Text(
  1807.                                                     "${AppTags.description.tr}:",
  1808.                                                     style: isMobile(context)
  1809.                                                         ? AppThemeData
  1810.                                                             .titleTextStyle_14
  1811.                                                         : AppThemeData
  1812.                                                             .titleTextStyle_11Tab,
  1813.                                                   ),
  1814.                                                   detailsController
  1815.                                                           .isDescription.value
  1816.                                                       ? Icon(Icons.remove,
  1817.                                                           size: 16.r,
  1818.                                                           color: AppThemeData
  1819.                                                               .detailsIconColor)
  1820.                                                       : Icon(
  1821.                                                           Icons.add,
  1822.                                                           size: 16.r,
  1823.                                                           color: AppThemeData
  1824.                                                               .detailsIconColor,
  1825.                                                         )
  1826.                                                 ],
  1827.                                               ),
  1828.                                             ),
  1829.                                           ),
  1830.                                           Obx(
  1831.                                             () => detailsController
  1832.                                                     .isDescription.value
  1833.                                                 ? Column(
  1834.                                                     mainAxisAlignment:
  1835.                                                         MainAxisAlignment.start,
  1836.                                                     children: [
  1837.                                                       SizedBox(
  1838.                                                         height: 4.h,
  1839.                                                       ),
  1840.                                                       detailsModel
  1841.                                                               .data!
  1842.                                                               .details!
  1843.                                                               .isNotEmpty
  1844.                                                           ? ListView(
  1845.                                                               shrinkWrap: true,
  1846.                                                               physics:
  1847.                                                                   const NeverScrollableScrollPhysics(),
  1848.                                                               children: [
  1849.                                                                 ProductDescription(
  1850.                                                                   details:
  1851.                                                                       detailsModel
  1852.                                                                           .data!
  1853.                                                                           .details!,
  1854.                                                                 ),
  1855.                                                                 detailsModel
  1856.                                                                         .data!
  1857.                                                                         .descriptionImages!
  1858.                                                                         .isNotEmpty
  1859.                                                                     ? Obx(
  1860.                                                                         () =>
  1861.                                                                             Stack(
  1862.                                                                           alignment:
  1863.                                                                               Alignment.center,
  1864.                                                                           children: [
  1865.                                                                             InkWell(
  1866.                                                                               onTap: () {
  1867.                                                                                 Get.to(DescriptionImageViewScreen(
  1868.                                                                                   descriptionImage: detailsController.productDetail.value.data!.descriptionImages,
  1869.                                                                                 ));
  1870.                                                                               },
  1871.                                                                               child: SizedBox(
  1872.                                                                                 child: Padding(
  1873.                                                                                   padding: const EdgeInsets.all(2.0),
  1874.                                                                                   child: Image.network(
  1875.                                                                                     detailsModel.data!.descriptionImages![detailsController.pageView.value].toString(),
  1876.                                                                                     fit: BoxFit.fitWidth,
  1877.                                                                                   ),
  1878.                                                                                 ),
  1879.                                                                               ),
  1880.                                                                             ),
  1881.                                                                             Positioned(
  1882.                                                                               left: 5.w,
  1883.                                                                               child: InkWell(
  1884.                                                                                 onTap: () {
  1885.                                                                                   detailsController.updatePageDecrement();
  1886.                                                                                 },
  1887.                                                                                 child: Container(
  1888.                                                                                   width: 25.w,
  1889.                                                                                   height: 25.h,
  1890.                                                                                   alignment: Alignment.center,
  1891.                                                                                   decoration: BoxDecoration(
  1892.                                                                                     borderRadius: BorderRadius.circular(2),
  1893.                                                                                     color: Colors.black.withOpacity(0.8),
  1894.                                                                                   ),
  1895.                                                                                   child: Icon(
  1896.                                                                                     Icons.arrow_back_ios_new,
  1897.                                                                                     color: Colors.white,
  1898.                                                                                     size: 18.r,
  1899.                                                                                   ),
  1900.                                                                                 ),
  1901.                                                                               ),
  1902.                                                                             ),
  1903.                                                                             Positioned(
  1904.                                                                               right: 5.w,
  1905.                                                                               child: InkWell(
  1906.                                                                                 onTap: () {
  1907.                                                                                   detailsController.updatePageIncrement();
  1908.                                                                                 },
  1909.                                                                                 child: Container(
  1910.                                                                                   width: 25.w,
  1911.                                                                                   height: 25.h,
  1912.                                                                                   alignment: Alignment.center,
  1913.                                                                                   decoration: BoxDecoration(
  1914.                                                                                     borderRadius: BorderRadius.circular(2),
  1915.                                                                                     color: Colors.black.withOpacity(0.8),
  1916.                                                                                   ),
  1917.                                                                                   child: Icon(
  1918.                                                                                     Icons.arrow_forward_ios,
  1919.                                                                                     color: Colors.white,
  1920.                                                                                     size: 18.r,
  1921.                                                                                   ),
  1922.                                                                                 ),
  1923.                                                                               ),
  1924.                                                                             )
  1925.                                                                           ],
  1926.                                                                         ),
  1927.                                                                       )
  1928.                                                                     : const SizedBox()
  1929.                                                               ],
  1930.                                                             )
  1931.                                                           : Text(
  1932.                                                               AppTags
  1933.                                                                   .noDescription
  1934.                                                                   .tr,
  1935.                                                             ),
  1936.                                                     ],
  1937.                                                   )
  1938.                                                 : const SizedBox(),
  1939.                                           )
  1940.                                         ],
  1941.                                       ),
  1942.                                     ),
  1943.                                   ),
  1944.                                   SizedBox(height: 10.h),
  1945.  
  1946.                                   (detailsController.productDetail.value.data!
  1947.                                                       .ordering ==
  1948.                                                   1 ||
  1949.                                               detailsController.productDetail
  1950.                                                       .value.data!.ordering! >
  1951.                                                   2) &&
  1952.                                           detailsController.productDetail.value
  1953.                                               .data!.linkedProducts.isNotEmpty
  1954.                                       ? Container(
  1955.                                           alignment: Alignment.center,
  1956.                                           decoration: BoxDecoration(
  1957.                                             border: Border.all(
  1958.                                               color:
  1959.                                                   AppThemeData.borderSideColor,
  1960.                                             ),
  1961.                                             color: Colors.white,
  1962.                                             borderRadius: BorderRadius.all(
  1963.                                                 Radius.circular(3.r)),
  1964.                                           ),
  1965.                                           child: InkWell(
  1966.                                             onTap: () {
  1967.                                               Get.delete<
  1968.                                                   DetailsPageController>();
  1969.                                               Get.to(RelatedReagentsPage(
  1970.                                                   relatedReagents:
  1971.                                                       detailsController
  1972.                                                           .productDetail
  1973.                                                           .value
  1974.                                                           .data!
  1975.                                                           .linkedProducts));
  1976.                                             },
  1977.                                             child: Padding(
  1978.                                               padding: EdgeInsets.all(8.r),
  1979.                                               child: Row(
  1980.                                                 mainAxisAlignment:
  1981.                                                     MainAxisAlignment
  1982.                                                         .spaceBetween,
  1983.                                                 children: [
  1984.                                                   Text(
  1985.                                                     "See related reagents",
  1986.                                                     style: isMobile(context)
  1987.                                                         ? AppThemeData
  1988.                                                             .titleTextStyle_14
  1989.                                                         : AppThemeData
  1990.                                                             .titleTextStyle_11Tab,
  1991.                                                   ),
  1992.                                                   const Icon(
  1993.                                                       Icons.arrow_drop_down,
  1994.                                                       color: Colors.grey)
  1995.                                                 ],
  1996.                                               ),
  1997.                                             ),
  1998.                                           ),
  1999.                                         )
  2000.                                       : const SizedBox(),
  2001.  
  2002.                                   SizedBox(height: 10.h),
  2003.  
  2004.                                   detailsModel.data!.pdf!.isNotEmpty
  2005.                                       ? Container(
  2006.                                           alignment: Alignment.center,
  2007.                                           decoration: BoxDecoration(
  2008.                                             border: Border.all(
  2009.                                               color:
  2010.                                                   AppThemeData.borderSideColor,
  2011.                                             ),
  2012.                                             color: Colors.white,
  2013.                                             borderRadius: BorderRadius.all(
  2014.                                               Radius.circular(3.r),
  2015.                                             ),
  2016.                                           ),
  2017.                                           child: InkWell(
  2018.                                             onTap: () {
  2019.                                               if (LocalDataHelper()
  2020.                                                       .getUserToken() ==
  2021.                                                   null) {
  2022.                                                 Get.toNamed(Routes.logIn,
  2023.                                                     arguments: {'pop': true});
  2024.                                               } else {
  2025.                                                 Get.to(() => BrochurePdfPage(
  2026.                                                       pdfUrl: detailsModel
  2027.                                                           .data!.pdf,
  2028.                                                       title: detailsModel
  2029.                                                           .data!.title!,
  2030.                                                     ));
  2031.                                               }
  2032.                                             },
  2033.                                             child: Padding(
  2034.                                               padding: EdgeInsets.all(8.r),
  2035.                                               child: Column(
  2036.                                                 crossAxisAlignment:
  2037.                                                     CrossAxisAlignment.start,
  2038.                                                 children: [
  2039.                                                   Row(
  2040.                                                     mainAxisAlignment:
  2041.                                                         MainAxisAlignment
  2042.                                                             .spaceBetween,
  2043.                                                     children: [
  2044.                                                       Text(
  2045.                                                         "Download Brochure",
  2046.                                                         style: isMobile(context)
  2047.                                                             ? AppThemeData
  2048.                                                                 .titleTextStyle_14
  2049.                                                             : AppThemeData
  2050.                                                                 .titleTextStyle_11Tab,
  2051.                                                       ),
  2052.                                                       const Icon(Icons.download,
  2053.                                                           color: Colors.grey)
  2054.                                                     ],
  2055.                                                   ),
  2056.                                                   AnimatedContainer(
  2057.                                                     duration: const Duration(
  2058.                                                         milliseconds: 100),
  2059.                                                     width: MediaQuery.of(
  2060.                                                                 context)
  2061.                                                             .size
  2062.                                                             .width *
  2063.                                                         (detailsController
  2064.                                                                 .downloadProgress
  2065.                                                                 .value /
  2066.                                                             100),
  2067.                                                     height: 1.h,
  2068.                                                     color: AppThemeData
  2069.                                                         .primaryColor,
  2070.                                                   )
  2071.                                                 ],
  2072.                                               ),
  2073.                                             ),
  2074.                                           ),
  2075.                                         )
  2076.                                       : const SizedBox(),
  2077.  
  2078.                                   //wholesale Data Table
  2079.                                   detailsController
  2080.                                           .productDetail.value.data!.isWholesale
  2081.                                       ? Container(
  2082.                                           alignment: Alignment.center,
  2083.                                           decoration: BoxDecoration(
  2084.                                             border: Border.all(
  2085.                                               color:
  2086.                                                   AppThemeData.borderSideColor,
  2087.                                             ),
  2088.                                             color: Colors.white,
  2089.                                             borderRadius: BorderRadius.all(
  2090.                                               Radius.circular(3.r),
  2091.                                             ),
  2092.                                           ),
  2093.                                           child: Padding(
  2094.                                             padding: EdgeInsets.all(10.r),
  2095.                                             child: Column(
  2096.                                               mainAxisSize: MainAxisSize.min,
  2097.                                               children: [
  2098.                                                 Row(
  2099.                                                   mainAxisAlignment:
  2100.                                                       MainAxisAlignment
  2101.                                                           .spaceBetween,
  2102.                                                   children: [
  2103.                                                     Row(
  2104.                                                       children: [
  2105.                                                         Text(AppTags.minQtn.tr,
  2106.                                                             style: isMobile(
  2107.                                                                     context)
  2108.                                                                 ? AppThemeData
  2109.                                                                     .titleTextStyle_13
  2110.                                                                 : AppThemeData
  2111.                                                                     .titleTextStyleTab),
  2112.                                                       ],
  2113.                                                     ),
  2114.                                                     Row(
  2115.                                                       children: [
  2116.                                                         Text(AppTags.maxQtn.tr,
  2117.                                                             style: isMobile(
  2118.                                                                     context)
  2119.                                                                 ? AppThemeData
  2120.                                                                     .titleTextStyle_13
  2121.                                                                 : AppThemeData
  2122.                                                                     .titleTextStyleTab),
  2123.                                                       ],
  2124.                                                     ),
  2125.                                                     // Row(
  2126.                                                     //   children: [
  2127.                                                     //     Text(AppTags.price.tr,
  2128.                                                     //         style: isMobile(context)
  2129.                                                     //             ? AppThemeData
  2130.                                                     //                 .titleTextStyle_13
  2131.                                                     //             : AppThemeData
  2132.                                                     //                 .titleTextStyleTab),
  2133.                                                     //   ],
  2134.                                                     // ),
  2135.                                                   ],
  2136.                                                 ),
  2137.                                                 const Divider(),
  2138.                                                 Flexible(
  2139.                                                   child: ListView.builder(
  2140.                                                     shrinkWrap: true,
  2141.                                                     itemCount: detailsController
  2142.                                                         .productDetail
  2143.                                                         .value
  2144.                                                         .data!
  2145.                                                         .wholesalePrices!
  2146.                                                         .length,
  2147.                                                     itemBuilder:
  2148.                                                         (context, index) =>
  2149.                                                             WholesaleDataWidget(
  2150.                                                       wholesalePrice:
  2151.                                                           detailsController
  2152.                                                                   .productDetail
  2153.                                                                   .value
  2154.                                                                   .data!
  2155.                                                                   .wholesalePrices![
  2156.                                                               index],
  2157.                                                     ),
  2158.                                                   ),
  2159.                                                 )
  2160.                                               ],
  2161.                                             ),
  2162.                                           ),
  2163.                                         )
  2164.                                       : const SizedBox(),
  2165.                                   detailsController
  2166.                                           .productDetail.value.data!.isWholesale
  2167.                                       ? SizedBox(height: 10.h)
  2168.                                       : const SizedBox(),
  2169.  
  2170.                                   //Why Us section
  2171.                                   detailsController.hassleFree.value
  2172.                                       ? Container(
  2173.                                           alignment: Alignment.center,
  2174.                                           decoration: BoxDecoration(
  2175.                                             border: Border.all(
  2176.                                               color:
  2177.                                                   AppThemeData.borderSideColor,
  2178.                                             ),
  2179.                                             color: Colors.white,
  2180.                                             borderRadius: BorderRadius.all(
  2181.                                               Radius.circular(3.r),
  2182.                                             ),
  2183.                                           ),
  2184.                                           child: Padding(
  2185.                                             padding: EdgeInsets.all(10.r),
  2186.                                             child: Column(
  2187.                                               children: [
  2188.                                                 Row(
  2189.                                                   mainAxisAlignment:
  2190.                                                       MainAxisAlignment.start,
  2191.                                                   crossAxisAlignment:
  2192.                                                       CrossAxisAlignment.start,
  2193.                                                   children: [
  2194.                                                     Padding(
  2195.                                                       padding: EdgeInsets.only(
  2196.                                                           left: 4.w,
  2197.                                                           right: 8.w,
  2198.                                                           top: 4.h),
  2199.                                                       child: Container(
  2200.                                                           height: 16.h,
  2201.                                                           width: 16.w,
  2202.                                                           alignment:
  2203.                                                               Alignment.center,
  2204.                                                           decoration:
  2205.                                                               BoxDecoration(
  2206.                                                             //color: const Color(0xff56A8C7),
  2207.                                                             border: Border.all(
  2208.                                                                 color: const Color(
  2209.                                                                     0xffD16D86)),
  2210.                                                             borderRadius:
  2211.                                                                 BorderRadius
  2212.                                                                     .all(
  2213.                                                               Radius.circular(
  2214.                                                                   20.r),
  2215.                                                             ),
  2216.                                                           ),
  2217.                                                           child: Icon(
  2218.                                                             Icons.check,
  2219.                                                             size: 12.r,
  2220.                                                             color: const Color(
  2221.                                                                 0xffD16D86),
  2222.                                                           )),
  2223.                                                     ),
  2224.                                                     Column(
  2225.                                                       crossAxisAlignment:
  2226.                                                           CrossAxisAlignment
  2227.                                                               .start,
  2228.                                                       children: [
  2229.                                                         Text(
  2230.                                                             AppTags
  2231.                                                                 .hassleFreeReturns
  2232.                                                                 .tr,
  2233.                                                             style: isMobile(
  2234.                                                                     context)
  2235.                                                                 ? AppThemeData
  2236.                                                                     .whyUsTextStyle_13
  2237.                                                                 : AppThemeData
  2238.                                                                     .whyUsTextStyle_10Tab,
  2239.                                                             overflow:
  2240.                                                                 TextOverflow
  2241.                                                                     .ellipsis),
  2242.                                                         Text(
  2243.                                                             AppTags.returnPolicy
  2244.                                                                 .tr,
  2245.                                                             style: isMobile(
  2246.                                                                     context)
  2247.                                                                 ? AppThemeData
  2248.                                                                     .titleTextStyle_13
  2249.                                                                 : AppThemeData
  2250.                                                                     .titleTextStyleTab,
  2251.                                                             overflow:
  2252.                                                                 TextOverflow
  2253.                                                                     .ellipsis),
  2254.                                                       ],
  2255.                                                     ),
  2256.                                                   ],
  2257.                                                 ),
  2258.                                                 SizedBox(
  2259.                                                   height: 10.h,
  2260.                                                 ),
  2261.                                                 Row(
  2262.                                                   mainAxisAlignment:
  2263.                                                       MainAxisAlignment.start,
  2264.                                                   crossAxisAlignment:
  2265.                                                       CrossAxisAlignment.start,
  2266.                                                   children: [
  2267.                                                     Padding(
  2268.                                                       padding: EdgeInsets.only(
  2269.                                                           left: 4.w,
  2270.                                                           right: 8.w,
  2271.                                                           top: 4.h),
  2272.                                                       child: Container(
  2273.                                                           height: 16.h,
  2274.                                                           width: 16.w,
  2275.                                                           alignment:
  2276.                                                               Alignment.center,
  2277.                                                           decoration:
  2278.                                                               BoxDecoration(
  2279.                                                             //color: const Color(0xff56A8C7),
  2280.                                                             border: Border.all(
  2281.                                                                 color: const Color(
  2282.                                                                     0xffD16D86)),
  2283.                                                             borderRadius:
  2284.                                                                 BorderRadius
  2285.                                                                     .all(
  2286.                                                               Radius.circular(
  2287.                                                                   20.r),
  2288.                                                             ),
  2289.                                                           ),
  2290.                                                           child: Icon(
  2291.                                                             Icons.check,
  2292.                                                             size: 12.r,
  2293.                                                             color: const Color(
  2294.                                                                 0xffD16D86),
  2295.                                                           )),
  2296.                                                     ),
  2297.                                                     Column(
  2298.                                                       crossAxisAlignment:
  2299.                                                           CrossAxisAlignment
  2300.                                                               .start,
  2301.                                                       children: [
  2302.                                                         Text(
  2303.                                                             AppTags
  2304.                                                                 .hassleFreeReturns
  2305.                                                                 .tr,
  2306.                                                             style: isMobile(
  2307.                                                                     context)
  2308.                                                                 ? AppThemeData
  2309.                                                                     .whyUsTextStyle_13
  2310.                                                                 : AppThemeData
  2311.                                                                     .whyUsTextStyle_10Tab,
  2312.                                                             overflow:
  2313.                                                                 TextOverflow
  2314.                                                                     .ellipsis),
  2315.                                                         Text(
  2316.                                                             AppTags.returnPolicy
  2317.                                                                 .tr,
  2318.                                                             style: isMobile(
  2319.                                                                     context)
  2320.                                                                 ? AppThemeData
  2321.                                                                     .titleTextStyle_13
  2322.                                                                 : AppThemeData
  2323.                                                                     .titleTextStyleTab,
  2324.                                                             overflow:
  2325.                                                                 TextOverflow
  2326.                                                                     .ellipsis),
  2327.                                                       ],
  2328.                                                     ),
  2329.                                                   ],
  2330.                                                 ),
  2331.                                               ],
  2332.                                             ),
  2333.                                           ),
  2334.                                         )
  2335.                                       : const SizedBox(),
  2336.                                   detailsController.hassleFree.value
  2337.                                       ? SizedBox(
  2338.                                           height: 10.h,
  2339.                                         )
  2340.                                       : const SizedBox(),
  2341.  
  2342.                                   //Card section
  2343.                                   detailsController.groupProduct.value
  2344.                                       ? Container(
  2345.                                           alignment: Alignment.center,
  2346.                                           decoration: BoxDecoration(
  2347.                                             border: Border.all(
  2348.                                               color:
  2349.                                                   AppThemeData.borderSideColor,
  2350.                                             ),
  2351.                                             color: Colors.white,
  2352.                                             borderRadius: BorderRadius.all(
  2353.                                               Radius.circular(3.r),
  2354.                                             ),
  2355.                                           ),
  2356.                                           child: Padding(
  2357.                                             padding: EdgeInsets.all(10.r),
  2358.                                             child: Column(
  2359.                                               children: [
  2360.                                                 Row(
  2361.                                                   mainAxisAlignment:
  2362.                                                       MainAxisAlignment.start,
  2363.                                                   crossAxisAlignment:
  2364.                                                       CrossAxisAlignment.start,
  2365.                                                   children: [
  2366.                                                     Container(
  2367.                                                         height: 44.h,
  2368.                                                         width: 44.w,
  2369.                                                         alignment:
  2370.                                                             Alignment.center,
  2371.                                                         decoration:
  2372.                                                             BoxDecoration(
  2373.                                                           color: const Color(
  2374.                                                               0xffF5F5F5),
  2375.                                                           borderRadius:
  2376.                                                               BorderRadius.all(
  2377.                                                             Radius.circular(
  2378.                                                                 5.r),
  2379.                                                           ),
  2380.                                                         ),
  2381.                                                         child: Icon(
  2382.                                                           Icons.image,
  2383.                                                           size: 30.r,
  2384.                                                         )),
  2385.                                                     Expanded(
  2386.                                                       child: Padding(
  2387.                                                         padding:
  2388.                                                             EdgeInsets.only(
  2389.                                                                 left: 8.w),
  2390.                                                         child: Column(
  2391.                                                           crossAxisAlignment:
  2392.                                                               CrossAxisAlignment
  2393.                                                                   .start,
  2394.                                                           mainAxisAlignment:
  2395.                                                               MainAxisAlignment
  2396.                                                                   .spaceBetween,
  2397.                                                           children: [
  2398.                                                             Text(
  2399.                                                                 "Classic T-shirt Sleeves and Formal",
  2400.                                                                 style: isMobile(
  2401.                                                                         context)
  2402.                                                                     ? AppThemeData
  2403.                                                                         .whyUsTextStyle_13
  2404.                                                                     : AppThemeData
  2405.                                                                         .whyUsTextStyle_10Tab,
  2406.                                                                 overflow:
  2407.                                                                     TextOverflow
  2408.                                                                         .ellipsis),
  2409.                                                             Row(
  2410.                                                               mainAxisAlignment:
  2411.                                                                   MainAxisAlignment
  2412.                                                                       .spaceBetween,
  2413.                                                               children: [
  2414.                                                                 Text("\$230.00",
  2415.                                                                     style: AppThemeData
  2416.                                                                         .priceTextStyle_13),
  2417.                                                                 Container(
  2418.                                                                     height:
  2419.                                                                         24.h,
  2420.                                                                     width: 80.w,
  2421.                                                                     alignment:
  2422.                                                                         Alignment
  2423.                                                                             .center,
  2424.                                                                     decoration:
  2425.                                                                         BoxDecoration(
  2426.                                                                       //color: const Color(0xff56A8C7),
  2427.                                                                       border: Border.all(
  2428.                                                                           color:
  2429.                                                                               AppThemeData.borderSideColor),
  2430.                                                                       borderRadius:
  2431.                                                                           BorderRadius
  2432.                                                                               .all(
  2433.                                                                         Radius.circular(
  2434.                                                                             3.r),
  2435.                                                                       ),
  2436.                                                                     ),
  2437.                                                                     child: Row(
  2438.                                                                       mainAxisAlignment:
  2439.                                                                           MainAxisAlignment
  2440.                                                                               .spaceEvenly,
  2441.                                                                       children: [
  2442.                                                                         Icon(
  2443.                                                                           Icons
  2444.                                                                               .remove,
  2445.                                                                           size:
  2446.                                                                               14.r,
  2447.                                                                           color:
  2448.                                                                               AppThemeData.headlineTextColor,
  2449.                                                                         ),
  2450.                                                                         const Text(
  2451.                                                                             "1"),
  2452.                                                                         Icon(
  2453.                                                                           Icons
  2454.                                                                               .add,
  2455.                                                                           size:
  2456.                                                                               14.r,
  2457.                                                                           color:
  2458.                                                                               AppThemeData.headlineTextColor,
  2459.                                                                         ),
  2460.                                                                       ],
  2461.                                                                     ))
  2462.                                                               ],
  2463.                                                             ),
  2464.                                                           ],
  2465.                                                         ),
  2466.                                                       ),
  2467.                                                     ),
  2468.                                                   ],
  2469.                                                 ),
  2470.                                                 const Divider(),
  2471.                                                 Row(
  2472.                                                   mainAxisAlignment:
  2473.                                                       MainAxisAlignment.start,
  2474.                                                   crossAxisAlignment:
  2475.                                                       CrossAxisAlignment.start,
  2476.                                                   children: [
  2477.                                                     Container(
  2478.                                                         height: 44.h,
  2479.                                                         width: 44.w,
  2480.                                                         alignment:
  2481.                                                             Alignment.center,
  2482.                                                         decoration:
  2483.                                                             BoxDecoration(
  2484.                                                           color: const Color(
  2485.                                                               0xffF5F5F5),
  2486.                                                           borderRadius:
  2487.                                                               BorderRadius.all(
  2488.                                                                   Radius
  2489.                                                                       .circular(
  2490.                                                                           5.r)),
  2491.                                                         ),
  2492.                                                         child: Icon(
  2493.                                                           Icons.image,
  2494.                                                           size: 30.r,
  2495.                                                         )),
  2496.                                                     Expanded(
  2497.                                                       child: Padding(
  2498.                                                         padding:
  2499.                                                             EdgeInsets.only(
  2500.                                                                 left: 8.w),
  2501.                                                         child: Column(
  2502.                                                           crossAxisAlignment:
  2503.                                                               CrossAxisAlignment
  2504.                                                                   .start,
  2505.                                                           mainAxisAlignment:
  2506.                                                               MainAxisAlignment
  2507.                                                                   .spaceBetween,
  2508.                                                           children: [
  2509.                                                             Text(
  2510.                                                                 "Classic T-shirt Sleeves and Formal",
  2511.                                                                 style: isMobile(
  2512.                                                                         context)
  2513.                                                                     ? AppThemeData
  2514.                                                                         .whyUsTextStyle_13
  2515.                                                                     : AppThemeData
  2516.                                                                         .whyUsTextStyle_10Tab,
  2517.                                                                 overflow:
  2518.                                                                     TextOverflow
  2519.                                                                         .ellipsis),
  2520.                                                             Row(
  2521.                                                               mainAxisAlignment:
  2522.                                                                   MainAxisAlignment
  2523.                                                                       .spaceBetween,
  2524.                                                               children: [
  2525.                                                                 Text("\$230.00",
  2526.                                                                     style: AppThemeData
  2527.                                                                         .priceTextStyle_13),
  2528.                                                                 Container(
  2529.                                                                     height:
  2530.                                                                         24.h,
  2531.                                                                     width: 80.w,
  2532.                                                                     alignment:
  2533.                                                                         Alignment
  2534.                                                                             .center,
  2535.                                                                     decoration:
  2536.                                                                         BoxDecoration(
  2537.                                                                       //color: const Color(0xff56A8C7),
  2538.                                                                       border: Border.all(
  2539.                                                                           color:
  2540.                                                                               AppThemeData.borderSideColor),
  2541.                                                                       borderRadius:
  2542.                                                                           BorderRadius
  2543.                                                                               .all(
  2544.                                                                         Radius.circular(
  2545.                                                                             3.r),
  2546.                                                                       ),
  2547.                                                                     ),
  2548.                                                                     child: Row(
  2549.                                                                       mainAxisAlignment:
  2550.                                                                           MainAxisAlignment
  2551.                                                                               .spaceEvenly,
  2552.                                                                       children: [
  2553.                                                                         Icon(
  2554.                                                                           Icons
  2555.                                                                               .remove,
  2556.                                                                           size:
  2557.                                                                               14.r,
  2558.                                                                           color:
  2559.                                                                               AppThemeData.headlineTextColor,
  2560.                                                                         ),
  2561.                                                                         const Text(
  2562.                                                                             "1"),
  2563.                                                                         Icon(
  2564.                                                                           Icons
  2565.                                                                               .add,
  2566.                                                                           size:
  2567.                                                                               14.r,
  2568.                                                                           color:
  2569.                                                                               AppThemeData.headlineTextColor,
  2570.                                                                         ),
  2571.                                                                       ],
  2572.                                                                     ))
  2573.                                                               ],
  2574.                                                             ),
  2575.                                                           ],
  2576.                                                         ),
  2577.                                                       ),
  2578.                                                     ),
  2579.                                                   ],
  2580.                                                 ),
  2581.                                               ],
  2582.                                             ),
  2583.                                           ),
  2584.                                         )
  2585.                                       : const SizedBox(),
  2586.                                   detailsController.groupProduct.value
  2587.                                       ? SizedBox(height: 10.h)
  2588.                                       : const SizedBox(),
  2589.                                 ],
  2590.                               ),
  2591.                             ),
  2592.                           ),
  2593.                         )
  2594.                       : Padding(
  2595.                           padding: EdgeInsets.symmetric(
  2596.                               horizontal: 15.w, vertical: 7.5.h),
  2597.                           child: Container(
  2598.                             decoration: BoxDecoration(
  2599.                               color: Colors.white,
  2600.                               borderRadius: BorderRadius.all(
  2601.                                 Radius.circular(10.r),
  2602.                               ),
  2603.                               boxShadow: [
  2604.                                 BoxShadow(
  2605.                                   spreadRadius: 30.r,
  2606.                                   blurRadius: 5.r,
  2607.                                   color: AppThemeData.boxShadowColor
  2608.                                       .withOpacity(0.01),
  2609.                                   offset: const Offset(0, 15),
  2610.                                 )
  2611.                               ],
  2612.                             ),
  2613.                             child: Padding(
  2614.                               padding: EdgeInsets.all(10.r),
  2615.                               child: Column(
  2616.                                 mainAxisAlignment: MainAxisAlignment.start,
  2617.                                 crossAxisAlignment: CrossAxisAlignment.start,
  2618.                                 children: [
  2619.                                   //Resting Product Tittle
  2620.                                   Row(
  2621.                                     crossAxisAlignment:
  2622.                                         CrossAxisAlignment.start,
  2623.                                     mainAxisAlignment:
  2624.                                         MainAxisAlignment.spaceBetween,
  2625.                                     children: [
  2626.                                       Column(
  2627.                                         crossAxisAlignment:
  2628.                                             CrossAxisAlignment.start,
  2629.                                         children: [
  2630.                                           SizedBox(
  2631.                                             height: 50.h,
  2632.                                             width: 250.w,
  2633.                                             child: Text(
  2634.                                               detailsModel.data!.title
  2635.                                                   .toString(),
  2636.                                               maxLines: 3,
  2637.                                               style: isMobile(context)
  2638.                                                   ? AppThemeData
  2639.                                                       .labelTextStyle_16
  2640.                                                   : AppThemeData
  2641.                                                       .labelTextStyle_12tab,
  2642.                                               overflow: TextOverflow.ellipsis,
  2643.                                             ),
  2644.                                           )
  2645.                                         ],
  2646.                                       ),
  2647.                                       Container(
  2648.                                         height: isMobile(context) ? 18.h : 28.h,
  2649.                                         width: isMobile(context) ? 40.w : 60.w,
  2650.                                         decoration: BoxDecoration(
  2651.                                           color: Colors.white,
  2652.                                           borderRadius: BorderRadius.all(
  2653.                                               Radius.circular(5.r)),
  2654.                                           boxShadow: [
  2655.                                             BoxShadow(
  2656.                                                 spreadRadius: 0,
  2657.                                                 blurRadius: 10,
  2658.                                                 color: AppThemeData
  2659.                                                     .boxShadowColor
  2660.                                                     .withOpacity(0.1),
  2661.                                                 offset: const Offset(0, 1))
  2662.                                           ],
  2663.                                         ),
  2664.                                         child: Row(
  2665.                                           mainAxisAlignment:
  2666.                                               MainAxisAlignment.center,
  2667.                                           children: [
  2668.                                             isMobile(context)
  2669.                                                 ? SvgPicture.asset(
  2670.                                                     "assets/icons/reting_icon.svg")
  2671.                                                 : SvgPicture.asset(
  2672.                                                     "assets/icons/reting_icon.svg",
  2673.                                                     width: 15.w,
  2674.                                                     height: 15.h),
  2675.                                             SizedBox(width: 4.w),
  2676.                                             Text(
  2677.                                               detailsModel.data!.rating
  2678.                                                   .toString(),
  2679.                                               style: AppThemeData
  2680.                                                   .reatingTextStyle_12,
  2681.                                             ),
  2682.                                           ],
  2683.                                         ),
  2684.                                       ),
  2685.                                     ],
  2686.                                   ),
  2687.                                   SizedBox(height: 13.h),
  2688.                                   detailsModel.data!.isClassified!
  2689.                                       ? const SizedBox()
  2690.                                       : Container(
  2691.                                           alignment: Alignment.center,
  2692.                                           decoration: BoxDecoration(
  2693.                                             border: Border.all(
  2694.                                               color:
  2695.                                                   AppThemeData.borderSideColor,
  2696.                                             ),
  2697.                                             color: Colors.white,
  2698.                                             borderRadius: BorderRadius.all(
  2699.                                                 Radius.circular(3.r)),
  2700.                                           ),
  2701.                                           child: Padding(
  2702.                                             padding: EdgeInsets.all(10.r),
  2703.                                             child: Column(
  2704.                                               children: [
  2705.                                                 InkWell(
  2706.                                                   onTap: () {
  2707.                                                     //detailsController.isDeliveryUpdate();
  2708.                                                   },
  2709.                                                   child: Row(
  2710.                                                     mainAxisAlignment:
  2711.                                                         MainAxisAlignment
  2712.                                                             .spaceBetween,
  2713.                                                     children: [
  2714.                                                       Text(
  2715.                                                         "${AppTags.productDetails.tr}:",
  2716.                                                         style: isMobile(context)
  2717.                                                             ? AppThemeData
  2718.                                                                 .titleTextStyle_14
  2719.                                                             : AppThemeData
  2720.                                                                 .titleTextStyle_11Tab,
  2721.                                                       )
  2722.                                                     ],
  2723.                                                   ),
  2724.                                                 ),
  2725.                                                 Column(
  2726.                                                   mainAxisAlignment:
  2727.                                                       MainAxisAlignment.start,
  2728.                                                   children: [
  2729.                                                     SizedBox(
  2730.                                                       height: 10.h,
  2731.                                                     ),
  2732.                                                     detailsModel.data!.details!
  2733.                                                             .isNotEmpty
  2734.                                                         ? ListView(
  2735.                                                             shrinkWrap: true,
  2736.                                                             physics:
  2737.                                                                 const NeverScrollableScrollPhysics(),
  2738.                                                             children: [
  2739.                                                               ProductDescription(
  2740.                                                                 details:
  2741.                                                                     detailsModel
  2742.                                                                         .data!
  2743.                                                                         .details!,
  2744.                                                               ),
  2745.                                                               detailsModel
  2746.                                                                       .data!
  2747.                                                                       .descriptionImages!
  2748.                                                                       .isNotEmpty
  2749.                                                                   ? Obx(
  2750.                                                                       () =>
  2751.                                                                           Stack(
  2752.                                                                         alignment:
  2753.                                                                             Alignment.center,
  2754.                                                                         children: [
  2755.                                                                           InkWell(
  2756.                                                                             onTap:
  2757.                                                                                 () {
  2758.                                                                               Get.to(DescriptionImageViewScreen(
  2759.                                                                                 descriptionImage: detailsController.productDetail.value.data!.descriptionImages,
  2760.                                                                               ));
  2761.                                                                             },
  2762.                                                                             child:
  2763.                                                                                 SizedBox(
  2764.                                                                               child: Padding(
  2765.                                                                                 padding: const EdgeInsets.all(2.0),
  2766.                                                                                 child: Image.network(
  2767.                                                                                   detailsModel.data!.descriptionImages![detailsController.pageView.value].toString(),
  2768.                                                                                   fit: BoxFit.fitWidth,
  2769.                                                                                 ),
  2770.                                                                               ),
  2771.                                                                             ),
  2772.                                                                           ),
  2773.                                                                           Positioned(
  2774.                                                                             left:
  2775.                                                                                 5.w,
  2776.                                                                             child:
  2777.                                                                                 InkWell(
  2778.                                                                               onTap: () {
  2779.                                                                                 detailsController.updatePageDecrement();
  2780.                                                                               },
  2781.                                                                               child: Container(
  2782.                                                                                 width: 25.w,
  2783.                                                                                 height: 25.h,
  2784.                                                                                 alignment: Alignment.center,
  2785.                                                                                 decoration: BoxDecoration(
  2786.                                                                                   borderRadius: BorderRadius.circular(2),
  2787.                                                                                   color: Colors.black.withOpacity(0.8),
  2788.                                                                                 ),
  2789.                                                                                 child: Icon(
  2790.                                                                                   Icons.arrow_back_ios_new,
  2791.                                                                                   color: Colors.white,
  2792.                                                                                   size: 18.r,
  2793.                                                                                 ),
  2794.                                                                               ),
  2795.                                                                             ),
  2796.                                                                           ),
  2797.                                                                           Positioned(
  2798.                                                                             right:
  2799.                                                                                 5.w,
  2800.                                                                             child:
  2801.                                                                                 InkWell(
  2802.                                                                               onTap: () {
  2803.                                                                                 detailsController.updatePageIncrement();
  2804.                                                                               },
  2805.                                                                               child: Container(
  2806.                                                                                 width: 25.w,
  2807.                                                                                 height: 25.h,
  2808.                                                                                 alignment: Alignment.center,
  2809.                                                                                 decoration: BoxDecoration(
  2810.                                                                                   borderRadius: BorderRadius.circular(2),
  2811.                                                                                   color: Colors.black.withOpacity(0.8),
  2812.                                                                                 ),
  2813.                                                                                 child: Icon(
  2814.                                                                                   Icons.arrow_forward_ios,
  2815.                                                                                   color: Colors.white,
  2816.                                                                                   size: 18.r,
  2817.                                                                                 ),
  2818.                                                                               ),
  2819.                                                                             ),
  2820.                                                                           )
  2821.                                                                         ],
  2822.                                                                       ),
  2823.                                                                     )
  2824.                                                                   : const SizedBox()
  2825.                                                             ],
  2826.                                                           )
  2827.                                                         : Text(
  2828.                                                             AppTags
  2829.                                                                 .noDescription
  2830.                                                                 .tr,
  2831.                                                           ),
  2832.                                                   ],
  2833.                                                 )
  2834.                                               ],
  2835.                                             ),
  2836.                                           ),
  2837.                                         ),
  2838.  
  2839.                                   detailsModel.data!.hasVariant!
  2840.                                       ? SizedBox(height: 10.h)
  2841.                                       : const SizedBox(),
  2842.  
  2843.                                   //Color Attribute
  2844.                                   detailsModel.data!.hasVariant!
  2845.                                       ? Column(
  2846.                                           children: [
  2847.                                             Container(
  2848.                                               alignment: Alignment.center,
  2849.                                               decoration: BoxDecoration(
  2850.                                                 border: Border.all(
  2851.                                                   color: AppThemeData
  2852.                                                       .borderSideColor,
  2853.                                                 ),
  2854.                                                 color: Colors.white,
  2855.                                                 borderRadius: BorderRadius.all(
  2856.                                                   Radius.circular(3.r),
  2857.                                                 ),
  2858.                                               ),
  2859.                                               child: Padding(
  2860.                                                 padding: EdgeInsets.all(10.w),
  2861.                                                 child: Column(
  2862.                                                   children: [
  2863.                                                     Row(
  2864.                                                       children: [
  2865.                                                         Text(
  2866.                                                           "${AppTags.color.tr}:",
  2867.                                                           style: isMobile(
  2868.                                                                   context)
  2869.                                                               ? AppThemeData
  2870.                                                                   .whyUsTextStyle_13
  2871.                                                               : AppThemeData
  2872.                                                                   .whyUsTextStyle_10Tab,
  2873.                                                         ),
  2874.                                                       ],
  2875.                                                     ),
  2876.                                                     SizedBox(height: 5.h),
  2877.                                                     SizedBox(
  2878.                                                       height: 35.h,
  2879.                                                       child: ListView.builder(
  2880.                                                           itemCount:
  2881.                                                               detailsModel
  2882.                                                                   .data!
  2883.                                                                   .colors!
  2884.                                                                   .length,
  2885.                                                           scrollDirection:
  2886.                                                               Axis.horizontal,
  2887.                                                           itemBuilder:
  2888.                                                               (context, index) {
  2889.                                                             return InkWell(
  2890.                                                               onTap: () {
  2891.                                                                 _colorSelectionController
  2892.                                                                     .changeColorSelection(
  2893.                                                                   index: index,
  2894.                                                                   colorName: detailsModel
  2895.                                                                       .data!
  2896.                                                                       .colors![
  2897.                                                                           index]
  2898.                                                                       .name
  2899.                                                                       .toString(),
  2900.                                                                   colorId: detailsModel
  2901.                                                                       .data!
  2902.                                                                       .colors![
  2903.                                                                           index]
  2904.                                                                       .id
  2905.                                                                       .toString(),
  2906.                                                                 );
  2907.                                                               },
  2908.                                                               child: Padding(
  2909.                                                                 padding: EdgeInsets
  2910.                                                                     .only(
  2911.                                                                         right: 10
  2912.                                                                             .w),
  2913.                                                                 child:
  2914.                                                                     Container(
  2915.                                                                   decoration:
  2916.                                                                       BoxDecoration(
  2917.                                                                     border:
  2918.                                                                         Border
  2919.                                                                             .all(
  2920.                                                                       color: Color(int.parse("0xff${detailsModel.data!.colors![index].hexCode.toString()}") ==
  2921.                                                                               AppThemeData
  2922.                                                                                   .colorWhite
  2923.                                                                           ? AppThemeData
  2924.                                                                               .colorBlack
  2925.                                                                           : int.parse(
  2926.                                                                               "0xff${detailsModel.data!.colors![index].hexCode.toString()}")),
  2927.                                                                     ),
  2928.                                                                     borderRadius:
  2929.                                                                         BorderRadius
  2930.                                                                             .all(
  2931.                                                                       Radius.circular(
  2932.                                                                           5.r),
  2933.                                                                     ),
  2934.                                                                   ),
  2935.                                                                   child:
  2936.                                                                       Padding(
  2937.                                                                     padding: EdgeInsets
  2938.                                                                         .all(4
  2939.                                                                             .r),
  2940.                                                                     child: Obx(() => Container(
  2941.                                                                         decoration: BoxDecoration(
  2942.                                                                           color:
  2943.                                                                               Color(int.parse("0xff${detailsModel.data!.colors![index].hexCode.toString()}")),
  2944.                                                                           borderRadius:
  2945.                                                                               BorderRadius.all(
  2946.                                                                             Radius.circular(5.r),
  2947.                                                                           ),
  2948.                                                                           boxShadow: [
  2949.                                                                             BoxShadow(
  2950.                                                                               color: Colors.grey.withOpacity(0.4),
  2951.                                                                               spreadRadius: 0.5,
  2952.                                                                               blurRadius: 0.4,
  2953.                                                                               offset: const Offset(0, 0), // changes position of shadow
  2954.                                                                             ),
  2955.                                                                           ],
  2956.                                                                         ),
  2957.                                                                         height: 28.h,
  2958.                                                                         width: isMobile(context) ? 25.w : 18.w,
  2959.                                                                         child: _colorSelectionController.selectedIndex.value == index
  2960.                                                                             ? Padding(
  2961.                                                                                 padding: EdgeInsets.all(6.r),
  2962.                                                                                 child: SvgPicture.asset(
  2963.                                                                                   "assets/icons/confirm.svg",
  2964.                                                                                   color: Color(int.parse("0xff${detailsModel.data!.colors![index].hexCode.toString()}") == AppThemeData.colorWhite ? AppThemeData.colorBlack : AppThemeData.colorWhite),
  2965.                                                                                 ),
  2966.                                                                               )
  2967.                                                                             : const SizedBox())),
  2968.                                                                   ),
  2969.                                                                 ),
  2970.                                                               ),
  2971.                                                             );
  2972.                                                           }),
  2973.                                                     )
  2974.                                                   ],
  2975.                                                 ),
  2976.                                               ),
  2977.                                             ),
  2978.                                             SizedBox(height: 8.h),
  2979.                                           ],
  2980.                                         )
  2981.                                       : const SizedBox(),
  2982.                                 ],
  2983.                               ),
  2984.                             ),
  2985.                           ),
  2986.                         )
  2987.                 ],
  2988.               ),
  2989.             ),
  2990.  
  2991.             //Add to Cart Button
  2992.  
  2993.             detailsModel.data!.isClassified!
  2994.                 ? const SizedBox()
  2995.                 : detailsModel.data!.isCatalog!
  2996.                     ? Padding(
  2997.                         padding: EdgeInsets.symmetric(
  2998.                             horizontal: 15.w, vertical: 7.5.h),
  2999.                         child: InkWell(
  3000.                           onTap: () {
  3001.                             launchUrl(
  3002.                               Uri.parse(
  3003.                                   detailsModel.data!.catalogExternalLink!),
  3004.                               mode: LaunchMode.externalApplication,
  3005.                             );
  3006.                           },
  3007.                           child: SizedBox(
  3008.                             width: double.infinity,
  3009.                             child: ButtonWidget(
  3010.                               buttonTittle: AppTags.learnMore.tr,
  3011.                             ),
  3012.                           ),
  3013.                         ),
  3014.                       )
  3015.                     : Padding(
  3016.                         padding: EdgeInsets.symmetric(
  3017.                             horizontal: 15.w, vertical: 15.h),
  3018.                         child: Row(
  3019.                           children: [
  3020.                             SizedBox(width: 15.w),
  3021.                             Expanded(
  3022.                               child: InkWell(onTap: () {
  3023.                                 if (detailsModel.data!.hasVariant!) {
  3024.                                   if (_colorSelectionController
  3025.                                               .selectedAttrId.value !=
  3026.                                           "" &&
  3027.                                       _colorSelectionController
  3028.                                               .selectedAttrName.value !=
  3029.                                           "") {
  3030.                                     if (!_colorSelectionController
  3031.                                             .selectedAttrId.value
  3032.                                             .contains("**") &&
  3033.                                         !_colorSelectionController
  3034.                                             .selectedAttrName.value
  3035.                                             .contains("**")) {
  3036.                                       _cartController.addToCart(
  3037.                                         productId: productId.toString(),
  3038.                                         quantity: detailsController
  3039.                                             .productQuantity
  3040.                                             .toString(),
  3041.                                         variantsIds: _colorSelectionController
  3042.                                             .selectedAttrId.value,
  3043.                                         variantsNames: _colorSelectionController
  3044.                                             .selectedAttrName.value,
  3045.                                       );
  3046.                                     } else {
  3047.                                       showCustomSnackBar(AppTags.selectAttr.tr,
  3048.                                           isError: true);
  3049.                                     }
  3050.                                   } else {
  3051.                                     showCustomSnackBar(AppTags.selectAttr.tr,
  3052.                                         isError: true);
  3053.                                   }
  3054.                                 } else {
  3055.                                   if (LocalDataHelper().getUserToken() ==
  3056.                                       null) {
  3057.                                     Get.toNamed(Routes.logIn,
  3058.                                         arguments: {'pop': true});
  3059.                                   } else {
  3060.                                     _cartController.addToCart(
  3061.                                       productId: productId.toString(),
  3062.                                       quantity: detailsController
  3063.                                           .productQuantity
  3064.                                           .toString(),
  3065.                                       variantsIds: _colorSelectionController
  3066.                                           .selectedAttrId.value,
  3067.                                       variantsNames: _colorSelectionController
  3068.                                           .selectedAttrName.value,
  3069.                                     );
  3070.                                   }
  3071.                                 }
  3072.                               }, child: Obx(() {
  3073.                                 return Container(
  3074.                                   height: 48.h,
  3075.                                   alignment: Alignment.center,
  3076.                                   decoration: BoxDecoration(
  3077.                                     color: AppThemeData.headlineTextColor,
  3078.                                     borderRadius: BorderRadius.all(
  3079.                                       Radius.circular(10.r),
  3080.                                     ),
  3081.                                   ),
  3082.                                   child: Padding(
  3083.                                     padding: EdgeInsets.all(4.r),
  3084.                                     child: !_cartController.isAddingToCart.value
  3085.                                         ? Row(
  3086.                                             mainAxisAlignment:
  3087.                                                 MainAxisAlignment.center,
  3088.                                             children: [
  3089.                                               Padding(
  3090.                                                 padding: EdgeInsets.all(10.r),
  3091.                                                 child: const Icon(
  3092.                                                   Icons.list_alt,
  3093.                                                   color: Colors.white,
  3094.                                                 ),
  3095.                                               ),
  3096.                                               Text(
  3097.                                                 "Add to Inquiry".tr,
  3098.                                                 style: isMobile(context)
  3099.                                                     ? AppThemeData
  3100.                                                         .buttonTextStyle_14
  3101.                                                     : AppThemeData
  3102.                                                         .buttonTextStyle_11Tab,
  3103.                                               ),
  3104.                                             ],
  3105.                                           )
  3106.                                         : SizedBox.square(
  3107.                                             dimension: 30.w,
  3108.                                             child: CircularProgressIndicator(
  3109.                                                 strokeWidth: 2,
  3110.                                                 color:
  3111.                                                     AppThemeData.primaryColor)),
  3112.                                   ),
  3113.                                 );
  3114.                               })),
  3115.                             ),
  3116.                           ],
  3117.                         ),
  3118.                       ),
  3119.           ],
  3120.         ),
  3121.       ),
  3122.     );
  3123.   }
  3124.  
  3125.   Widget reviewWidget(detailsModel, context) {
  3126.     return ListView.builder(
  3127.         scrollDirection: Axis.vertical,
  3128.         physics: const NeverScrollableScrollPhysics(),
  3129.         shrinkWrap: true,
  3130.         itemCount: detailsModel.data!.reviews!.length,
  3131.         itemBuilder: (_, index) {
  3132.           return Column(
  3133.             mainAxisAlignment: MainAxisAlignment.start,
  3134.             crossAxisAlignment: CrossAxisAlignment.start,
  3135.             children: [
  3136.               SizedBox(height: 10.h),
  3137.               Row(
  3138.                 children: [
  3139.                   Container(
  3140.                     width: 35.w,
  3141.                     height: 35.h,
  3142.                     decoration: BoxDecoration(
  3143.                         border: Border.all(
  3144.                             width: 0.w,
  3145.                             color: Theme.of(context).scaffoldBackgroundColor),
  3146.                         boxShadow: [
  3147.                           BoxShadow(
  3148.                               spreadRadius: 2,
  3149.                               blurRadius: 10,
  3150.                               color: Colors.black.withOpacity(0.1),
  3151.                               offset: const Offset(0, 5))
  3152.                         ],
  3153.                         shape: BoxShape.circle,
  3154.                         image: DecorationImage(
  3155.                             fit: BoxFit.cover,
  3156.                             image: NetworkImage(detailsModel
  3157.                                 .data!.reviews![index].user!.image
  3158.                                 .toString()))),
  3159.                   ),
  3160.                   SizedBox(width: 8.w),
  3161.                   Expanded(
  3162.                     flex: 5,
  3163.                     child: Column(
  3164.                       crossAxisAlignment: CrossAxisAlignment.start,
  3165.                       children: [
  3166.                         Row(
  3167.                           mainAxisAlignment: MainAxisAlignment.spaceBetween,
  3168.                           children: [
  3169.                             Text(
  3170.                               detailsModel.data!.reviews![index].user!.name
  3171.                                   .toString(),
  3172.                               style: isMobile(context)
  3173.                                   ? AppThemeData.titleTextStyle_14
  3174.                                   : AppThemeData.titleTextStyle_11Tab,
  3175.                             ),
  3176.                             Text(
  3177.                               detailsModel.data!.reviews![index].user!.name
  3178.                                   .toString(),
  3179.                               style: isMobile(context)
  3180.                                   ? AppThemeData.titleTextStyle_14
  3181.                                   : AppThemeData.titleTextStyle_11Tab,
  3182.                             ),
  3183.                             Text(
  3184.                               detailsModel.data!.reviews![index].date
  3185.                                   .toString(),
  3186.                               style: isMobile(context)
  3187.                                   ? AppThemeData.dateTextStyle_12
  3188.                                   : AppThemeData.dateTextStyle_9Tab,
  3189.                             )
  3190.                           ],
  3191.                         ),
  3192.                         SizedBox(
  3193.                           height: 4.h,
  3194.                         ),
  3195.                         RatingBarIndicator(
  3196.                           rating: double.parse(
  3197.                             detailsModel.data!.reviews![index].rating
  3198.                                 .toString(),
  3199.                           ),
  3200.                           itemBuilder: (context, index) => const Icon(
  3201.                             Icons.star,
  3202.                             color: Colors.amber,
  3203.                           ),
  3204.                           itemCount: 5,
  3205.                           itemSize: 18.r,
  3206.                           direction: Axis.horizontal,
  3207.                         ),
  3208.                       ],
  3209.                     ),
  3210.                   ),
  3211.                 ],
  3212.               ),
  3213.               SizedBox(
  3214.                 height: 5.h,
  3215.               ),
  3216.               Text(
  3217.                 detailsModel.data!.reviews![index].comment.toString(),
  3218.                 style: isMobile(context)
  3219.                     ? const TextStyle()
  3220.                     : AppThemeData.labelTextStyle_12tab.copyWith(
  3221.                         fontFamily: "Poppins",
  3222.                         fontSize: 10.sp,
  3223.                       ),
  3224.               ),
  3225.               SizedBox(height: 5.h),
  3226.               Wrap(
  3227.                 children: [
  3228.                   Row(
  3229.                     mainAxisAlignment: MainAxisAlignment.start,
  3230.                     crossAxisAlignment: CrossAxisAlignment.start,
  3231.                     children: [
  3232.                       Padding(
  3233.                         padding: EdgeInsets.only(right: 8.w),
  3234.                         child: Container(
  3235.                           height: 65.h,
  3236.                           width: 65.w,
  3237.                           decoration: BoxDecoration(
  3238.                             color: Colors.white,
  3239.                             borderRadius: BorderRadius.circular(10.r),
  3240.                             boxShadow: [
  3241.                               BoxShadow(
  3242.                                   spreadRadius: 2,
  3243.                                   blurRadius: 10.r,
  3244.                                   color: Colors.black.withOpacity(0.1),
  3245.                                   offset: const Offset(0, 5))
  3246.                             ],
  3247.                             image: DecorationImage(
  3248.                               fit: BoxFit.fill,
  3249.                               image: NetworkImage(detailsModel
  3250.                                   .data!.reviews![index].image
  3251.                                   .toString()),
  3252.                               matchTextDirection: true,
  3253.                             ),
  3254.                           ),
  3255.                           //child: Image.asset("assets/images/_8.png")
  3256.                         ),
  3257.                       ),
  3258.                     ],
  3259.                   ),
  3260.                 ],
  3261.               ),
  3262.               Padding(
  3263.                 padding: EdgeInsets.only(left: 15.w, top: 8.h),
  3264.                 child: replyReview(index, detailsModel, context),
  3265.               ),
  3266.               SizedBox(
  3267.                 height: 8.h,
  3268.               ),
  3269. /*
  3270.               Row(
  3271.                 children: [
  3272.                   InkWell(
  3273.                       onTap: () async {
  3274.                         if (_favouriteController.token != null) {
  3275.                           await detailsController.likeAndUnlike(reviewId: int.parse(detailsModel.data!.reviews![index].id.toString()))
  3276.                               .then((value) {
  3277.                             detailsController.getProductDetails(int.parse(productId!));
  3278.                           });
  3279.                         } else {
  3280.                           Get.snackbar(
  3281.                             AppTags.login.tr,
  3282.                             AppTags.pleaseLoginFirst.tr,
  3283.                             snackPosition: SnackPosition.BOTTOM,
  3284.                             duration: const Duration(seconds: 3),
  3285.                             colorText: Colors.white,
  3286.                             backgroundColor: Colors.black,
  3287.                             forwardAnimationCurve: Curves.decelerate,
  3288.                             shouldIconPulse: false,
  3289.                           );
  3290.                         }
  3291.  
  3292.  
  3293.                       },
  3294.                       child: detailsModel.data!.reviews![index].isLiked!
  3295.                           ? SvgPicture.asset(
  3296.                         "assets/icons/like.svg",
  3297.                         height: 13.h,
  3298.                         width: 14.w,
  3299.                         color: Colors.blue,
  3300.                       )
  3301.                           : SvgPicture.asset(
  3302.                         "assets/icons/like.svg",
  3303.                         height: 13.h,
  3304.                         width: 14.w,
  3305.                       )
  3306.                   ),
  3307.                   SizedBox(width: 10.w),
  3308.                   InkWell(
  3309.                     onTap: () {
  3310.                       if (_favouriteController.token != null) {
  3311.                         showDialog(
  3312.                         context: context,
  3313.                         builder: (context) => AlertDialog(
  3314.                             actions: <Widget>[
  3315.                                 buildReplyReview(index, detailsModel, context),
  3316.                             ],
  3317.                         ));
  3318.                     } else {
  3319.                     Get.snackbar(
  3320.                       AppTags.login.tr,
  3321.                       AppTags.pleaseLoginFirst.tr,
  3322.                       snackPosition: SnackPosition.BOTTOM,
  3323.                       duration: const Duration(seconds: 3),
  3324.                       colorText: Colors.white,
  3325.                       backgroundColor: Colors.black,
  3326.                       forwardAnimationCurve: Curves.decelerate,
  3327.                       shouldIconPulse: false,
  3328.                     );}},
  3329.                     child: SvgPicture.asset(
  3330.                       "assets/icons/comment.svg",
  3331.                       height: 14.h,
  3332.                       width: 15.w,
  3333.                     ),
  3334.                   ),
  3335.                 ],
  3336.               )
  3337. */
  3338.             ],
  3339.           );
  3340.         });
  3341.   }
  3342.  
  3343.   Widget replyReview(int indexId, detailsModel, context) {
  3344.     return ListView.builder(
  3345.         scrollDirection: Axis.vertical,
  3346.         physics: const NeverScrollableScrollPhysics(),
  3347.         shrinkWrap: true,
  3348.         itemCount: detailsModel.data!.reviews![indexId].replies!.length,
  3349.         itemBuilder: (_, index) {
  3350.           return Column(
  3351.             mainAxisAlignment: MainAxisAlignment.start,
  3352.             crossAxisAlignment: CrossAxisAlignment.start,
  3353.             children: [
  3354.               Row(
  3355.                 children: [
  3356.                   Container(
  3357.                     width: 25.w,
  3358.                     height: 25.h,
  3359.                     decoration: BoxDecoration(
  3360.                         border: Border.all(
  3361.                             width: 0,
  3362.                             color: Theme.of(context).scaffoldBackgroundColor),
  3363.                         boxShadow: [
  3364.                           BoxShadow(
  3365.                               spreadRadius: 2,
  3366.                               blurRadius: 10,
  3367.                               color: Colors.black.withOpacity(0.1),
  3368.                               offset: const Offset(0, 5))
  3369.                         ],
  3370.                         shape: BoxShape.circle,
  3371.                         image: DecorationImage(
  3372.                             fit: BoxFit.cover,
  3373.                             image: NetworkImage(detailsModel.data!
  3374.                                 .reviews![indexId].replies![index].user!.image
  3375.                                 .toString()))),
  3376.                   ),
  3377.                   SizedBox(width: 8.w),
  3378.                   Expanded(
  3379.                     flex: 5,
  3380.                     child: Column(
  3381.                       crossAxisAlignment: CrossAxisAlignment.start,
  3382.                       mainAxisAlignment: MainAxisAlignment.start,
  3383.                       children: [
  3384.                         Row(
  3385.                           mainAxisAlignment: MainAxisAlignment.spaceBetween,
  3386.                           children: [
  3387.                             Text(
  3388.                               detailsModel.data!.reviews![indexId]
  3389.                                   .replies![index].user!.name
  3390.                                   .toString(),
  3391.                               style: isMobile(context)
  3392.                                   ? AppThemeData.titleTextStyle_14
  3393.                                   : AppThemeData.titleTextStyle_11Tab,
  3394.                             ),
  3395.                             Text(
  3396.                               detailsModel
  3397.                                   .data!.reviews![indexId].replies![index].date
  3398.                                   .toString(),
  3399.                               style: isMobile(context)
  3400.                                   ? AppThemeData.dateTextStyle_12
  3401.                                   : AppThemeData.dateTextStyle_9Tab,
  3402.                             )
  3403.                           ],
  3404.                         ),
  3405.                         SizedBox(
  3406.                           height: 4.h,
  3407.                         ),
  3408.                       ],
  3409.                     ),
  3410.                   ),
  3411.                 ],
  3412.               ),
  3413.               SizedBox(
  3414.                 height: 3.h,
  3415.               ),
  3416.               Text(detailsModel.data!.reviews![indexId].replies![index].reply
  3417.                   .toString()),
  3418.               SizedBox(height: 5.h),
  3419.             ],
  3420.           );
  3421.         });
  3422.   }
  3423.  
  3424.   Widget buildSheet(detailsModel, context) {
  3425.     return Padding(
  3426.       padding: EdgeInsets.all(10.r),
  3427.       child: SingleChildScrollView(
  3428.         scrollDirection: Axis.vertical,
  3429.         child: Column(
  3430.           mainAxisAlignment: MainAxisAlignment.spaceBetween,
  3431.           children: [
  3432.             Column(
  3433.               mainAxisAlignment: MainAxisAlignment.start,
  3434.               crossAxisAlignment: CrossAxisAlignment.start,
  3435.               children: [
  3436.                 Row(
  3437.                   mainAxisAlignment: MainAxisAlignment.spaceBetween,
  3438.                   children: [
  3439.                     Text(
  3440.                       AppTags.rating.tr,
  3441.                       style: AppThemeData.detwailsScreenBottomSheetTitle,
  3442.                     ),
  3443.                     InkWell(
  3444.                       onTap: () {
  3445.                         Get.back();
  3446.                       },
  3447.                       child: Icon(
  3448.                         Icons.close,
  3449.                         size: 15.r,
  3450.                       ),
  3451.                     )
  3452.                   ],
  3453.                 ),
  3454.                 SizedBox(
  3455.                   height: 8.7.h,
  3456.                 ),
  3457.                 RatingBar.builder(
  3458.                   initialRating: detailsModel.data!.isReviewed!
  3459.                       ? double.parse(detailsModel.data!
  3460.                           .reviews![detailsController.userReviewIndex()!].rating
  3461.                           .toString())
  3462.                       : 1,
  3463.                   minRating: 1,
  3464.                   direction: Axis.horizontal,
  3465.                   allowHalfRating: true,
  3466.                   unratedColor: Colors.amber.withAlpha(50),
  3467.                   itemCount: 5,
  3468.                   itemSize: 20.r,
  3469.                   itemPadding: EdgeInsets.symmetric(horizontal: 0.w),
  3470.                   itemBuilder: (context, _) => Icon(
  3471.                     detailsController.selectedIcon ?? Icons.star,
  3472.                     color: Colors.amber,
  3473.                   ),
  3474.                   onRatingUpdate: (rating) {
  3475.                     detailsController.ratingUpdate(rating);
  3476.                   },
  3477.                   updateOnDrag: true,
  3478.                 ),
  3479.                 SizedBox(height: 10.h),
  3480.                 Text(
  3481.                   AppTags.uploadImage.tr,
  3482.                   style: isMobile(context)
  3483.                       ? AppThemeData.detwailsScreenBottomSheetTitle
  3484.                       : AppThemeData.detailsScreenPhoneNumberShow,
  3485.                 ),
  3486.                 SizedBox(
  3487.                   height: 8.h,
  3488.                 ),
  3489.                 Row(
  3490.                   children: [
  3491.                     SizedBox(
  3492.                         height: 53.h,
  3493.                         child: Row(
  3494.                           children: [
  3495.                             InkWell(
  3496.                               onTap: () {
  3497.                                 detailsController.getImage();
  3498.                               },
  3499.                               splashColor: Colors.transparent,
  3500.                               highlightColor: Colors.transparent,
  3501.                               hoverColor: Colors.transparent,
  3502.                               child: Container(
  3503.                                 height: 60.h,
  3504.                                 width: 60.w,
  3505.                                 decoration: BoxDecoration(
  3506.                                     color: AppThemeData.borderSideColor,
  3507.                                     borderRadius: BorderRadius.all(
  3508.                                         Radius.circular(10.r))),
  3509.                                 child: Padding(
  3510.                                   padding: EdgeInsets.all(15.r),
  3511.                                   child: SvgPicture.asset(
  3512.                                       "assets/icons/bx_camera.svg"),
  3513.                                 ),
  3514.                               ),
  3515.                             ),
  3516.                           ],
  3517.                         )),
  3518.                     const SizedBox(
  3519.                       width: 10,
  3520.                     ),
  3521.                     detailsController.image != null
  3522.                         ? SizedBox(
  3523.                             height: 53.h,
  3524.                             child: Container(
  3525.                                 width: 60.w,
  3526.                                 decoration: BoxDecoration(
  3527.                                     color: AppThemeData.borderSideColor,
  3528.                                     borderRadius: BorderRadius.all(
  3529.                                         Radius.circular(10.r))),
  3530.                                 child: ClipRRect(
  3531.                                   borderRadius: BorderRadius.circular(10.0),
  3532.                                   child: Image.file(
  3533.                                     detailsController.image!,
  3534.                                     fit: BoxFit.fill,
  3535.                                   ),
  3536.                                 )))
  3537.                         : const SizedBox(),
  3538.                   ],
  3539.                 ),
  3540.                 SizedBox(
  3541.                   height: 8.h,
  3542.                 ),
  3543.                 Row(
  3544.                   mainAxisAlignment: MainAxisAlignment.start,
  3545.                   children: [
  3546.                     Text(
  3547.                       AppTags.reviewTitle.tr,
  3548.                       style: isMobile(context)
  3549.                           ? AppThemeData.detwailsScreenBottomSheetTitle
  3550.                           : AppThemeData.detailsScreenPhoneNumberShow,
  3551.                     ),
  3552.                   ],
  3553.                 ),
  3554.                 SizedBox(height: 6.h),
  3555.                 TextField(
  3556.                   controller: titleController,
  3557.                   maxLines: 1,
  3558.                   decoration: InputDecoration(
  3559.                     contentPadding: EdgeInsets.all(8.r),
  3560.                     focusedBorder: OutlineInputBorder(
  3561.                       borderSide:
  3562.                           BorderSide(color: Colors.greenAccent, width: 1.w),
  3563.                     ),
  3564.                     enabledBorder: OutlineInputBorder(
  3565.                       borderSide: BorderSide(
  3566.                         color: AppThemeData.borderSideColor,
  3567.                         width: 1.w,
  3568.                       ),
  3569.                     ),
  3570.                     hintText: detailsModel.data!.isReviewed!
  3571.                         ? detailsModel
  3572.                             .data!
  3573.                             .reviews![detailsController.userReviewIndex()!]
  3574.                             .title
  3575.                             .toString()
  3576.                         : AppTags.reviewTitle.tr,
  3577.                     // pass the hint text parameter here
  3578.                     hintStyle: const TextStyle(color: Colors.grey),
  3579.                   ),
  3580.                 ),
  3581.                 SizedBox(
  3582.                   height: 8.h,
  3583.                 ),
  3584.                 Row(
  3585.                   mainAxisAlignment: MainAxisAlignment.start,
  3586.                   children: [
  3587.                     Text(
  3588.                       AppTags.writeReview.tr,
  3589.                       style: isMobile(context)
  3590.                           ? AppThemeData.detwailsScreenBottomSheetTitle
  3591.                           : AppThemeData.detailsScreenPhoneNumberShow,
  3592.                     ),
  3593.                   ],
  3594.                 ),
  3595.                 SizedBox(height: 6.h),
  3596.                 TextField(
  3597.                   controller: writeReviewController,
  3598.                   maxLines: 4,
  3599.                   decoration: InputDecoration(
  3600.                     contentPadding: EdgeInsets.all(8.r),
  3601.                     focusedBorder: OutlineInputBorder(
  3602.                       borderSide:
  3603.                           BorderSide(color: Colors.greenAccent, width: 1.w),
  3604.                     ),
  3605.                     enabledBorder: OutlineInputBorder(
  3606.                       borderSide: BorderSide(
  3607.                           color: AppThemeData.borderSideColor, width: 1.w),
  3608.                     ),
  3609.                     hintText: detailsModel.data!.isReviewed!
  3610.                         ? detailsModel
  3611.                             .data!
  3612.                             .reviews![detailsController.userReviewIndex()!]
  3613.                             .comment
  3614.                         : AppTags.review.tr,
  3615.                     // pass the hint text parameter here
  3616.                     hintStyle: const TextStyle(color: Colors.grey),
  3617.                   ),
  3618.                 )
  3619.               ],
  3620.             ),
  3621.             SizedBox(height: 10.h),
  3622.             Obx(
  3623.               () => Padding(
  3624.                 padding: EdgeInsets.symmetric(horizontal: 15.w, vertical: 0.h),
  3625.                 child: InkWell(
  3626.                   onTap: () async {
  3627.                     await detailsController
  3628.                         .postReviewSubmit(
  3629.                             productId:
  3630.                                 detailsModel.data!.form!.productId!.toString(),
  3631.                             title: titleController.text.isEmpty
  3632.                                 ? detailsModel
  3633.                                     .data!
  3634.                                     .reviews![
  3635.                                         detailsController.userReviewIndex()!]
  3636.                                     .title
  3637.                                     .toString()
  3638.                                 : titleController.text,
  3639.                             comment: writeReviewController.text.isEmpty
  3640.                                 ? detailsModel
  3641.                                     .data!
  3642.                                     .reviews![
  3643.                                         detailsController.userReviewIndex()!]
  3644.                                     .comment
  3645.                                     .toString()
  3646.                                 : writeReviewController.text,
  3647.                             rating: detailsController.rating.isNaN
  3648.                                 ? detailsModel
  3649.                                     .data!
  3650.                                     .reviews![
  3651.                                         detailsController.userReviewIndex()!]
  3652.                                     .rating
  3653.                                     .toString()
  3654.                                 : detailsController.rating.toString(),
  3655.                             image: detailsController.image
  3656.                             //image: image
  3657.                             )
  3658.                         .then((value) => detailsController
  3659.                             .getProductDetails(int.parse(productId!)));
  3660.                     Get.snackbar(
  3661.                       AppTags.login.tr,
  3662.                       AppTags.pleaseLoginFirst.tr,
  3663.                       snackPosition: SnackPosition.BOTTOM,
  3664.                       duration: const Duration(seconds: 3),
  3665.                       colorText: Colors.white,
  3666.                       backgroundColor: Colors.black,
  3667.                       forwardAnimationCurve: Curves.decelerate,
  3668.                       shouldIconPulse: false,
  3669.                     );
  3670.  
  3671.                     Get.back();
  3672.                   },
  3673.                   child: Container(
  3674.                     alignment: Alignment.center,
  3675.                     width: 315.w,
  3676.                     decoration: BoxDecoration(
  3677.                       color: AppThemeData.headlineTextColor,
  3678.                       borderRadius: BorderRadius.all(
  3679.                         Radius.circular(10.r),
  3680.                       ),
  3681.                     ),
  3682.                     child: Padding(
  3683.                       padding: EdgeInsets.all(12.r),
  3684.                       child: detailsController.isReviewLoading.value
  3685.                           ? Text(
  3686.                               AppTags.postReview.tr,
  3687.                               style: AppThemeData.detwailsScreenBottomSheetTitle
  3688.                                   .copyWith(color: Colors.white),
  3689.                             )
  3690.                           : const CircularProgressIndicator(
  3691.                               color: Colors.white,
  3692.                             ),
  3693.                     ),
  3694.                   ),
  3695.                 ),
  3696.               ),
  3697.             )
  3698.           ],
  3699.         ),
  3700.       ),
  3701.     );
  3702.   }
  3703.  
  3704.   Widget buildReplyReview(int index, detailsModel, context) => Padding(
  3705.         padding: EdgeInsets.all(10.r),
  3706.         child: SingleChildScrollView(
  3707.           scrollDirection: Axis.vertical,
  3708.           child: Column(
  3709.             mainAxisAlignment: MainAxisAlignment.spaceBetween,
  3710.             children: [
  3711.               Column(
  3712.                 mainAxisAlignment: MainAxisAlignment.start,
  3713.                 crossAxisAlignment: CrossAxisAlignment.start,
  3714.                 children: [
  3715.                   Row(
  3716.                     mainAxisAlignment: MainAxisAlignment.spaceBetween,
  3717.                     children: [
  3718.                       Text(
  3719.                         AppTags.replyReview.tr,
  3720.                         style: isMobile(context)
  3721.                             ? AppThemeData.titleTextStyle_14
  3722.                             : AppThemeData.titleTextStyle_11Tab,
  3723.                       ),
  3724.                       InkWell(
  3725.                           onTap: () {
  3726.                             Get.back();
  3727.                           },
  3728.                           child: Icon(
  3729.                             Icons.close,
  3730.                             size: 22.r,
  3731.                           ))
  3732.                     ],
  3733.                   ),
  3734.                   SizedBox(height: 10.h),
  3735.                   TextField(
  3736.                     controller: writeReviewReplyController,
  3737.                     maxLines: 4,
  3738.                     decoration: InputDecoration(
  3739.                       contentPadding: EdgeInsets.all(8.r),
  3740.                       focusedBorder: OutlineInputBorder(
  3741.                         borderSide:
  3742.                             BorderSide(color: Colors.greenAccent, width: 1.w),
  3743.                       ),
  3744.                       enabledBorder: OutlineInputBorder(
  3745.                         borderSide: BorderSide(
  3746.                             color: AppThemeData.borderSideColor, width: 1.w),
  3747.                       ),
  3748.                       hintText: AppTags.writeSomething
  3749.                           .tr, // pass the hint text parameter here
  3750.                       hintStyle: const TextStyle(color: Colors.grey),
  3751.                     ),
  3752.                   ),
  3753.                 ],
  3754.               ),
  3755.               SizedBox(height: 10.h),
  3756.               Padding(
  3757.                 padding: EdgeInsets.symmetric(horizontal: 15.w, vertical: 0.h),
  3758.                 child: InkWell(
  3759.                   onTap: () async {
  3760.                     await Repository()
  3761.                         .postReviewReply(
  3762.                           reviewId:
  3763.                               detailsModel.data!.reviews![index].id.toString(),
  3764.                           reply: writeReviewReplyController.text,
  3765.                         )
  3766.                         .then((value) => detailsController
  3767.                             .getProductDetails(int.parse(productId!)));
  3768.                     Get.back();
  3769.                   },
  3770.                   child: Container(
  3771.                     alignment: Alignment.center,
  3772.                     width: 315.w,
  3773.                     decoration: BoxDecoration(
  3774.                       color: AppThemeData.headlineTextColor,
  3775.                       borderRadius: BorderRadius.all(
  3776.                         Radius.circular(10.r),
  3777.                       ),
  3778.                     ),
  3779.                     child: Padding(
  3780.                       padding: EdgeInsets.all(12.r),
  3781.                       child: Text(
  3782.                         AppTags.replyReview.tr,
  3783.                         style: isMobile(context)
  3784.                             ? AppThemeData.buttonTextStyle_14
  3785.                             : AppThemeData.buttonTextStyle_11Tab,
  3786.                       ),
  3787.                     ),
  3788.                   ),
  3789.                 ),
  3790.               ),
  3791.             ],
  3792.           ),
  3793.         ),
  3794.       );
  3795. }
  3796.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement