import 'dart:developer'; import 'package:animated_rating_stars/animated_rating_stars.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:taafee_mobile/common/extensions/widget_extension.dart'; import 'package:taafee_mobile/common/widgets/button.dart'; import 'package:taafee_mobile/common/widgets/text.dart'; import 'package:taafee_mobile/core/routing/routing_manager.dart'; import 'package:taafee_mobile/features/card/business_logic_layer/card_controller.dart'; import 'package:taafee_mobile/features/card/presentation_layer/widgets/star.dart'; import 'package:taafee_mobile/features/card/presentation_layer/widgets/view_ratings.dart'; import '../../../../common/const/const.dart'; import '../../../../common/widgets/textfiled.dart'; class RateWidget extends StatelessWidget { final CardController cardController = Get.find(); RateWidget({super.key}); @override Widget build(BuildContext context) { return Container( width: Get.width * .89, height: 150, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10), ), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const RegularTextWidget("Rates"), Container( alignment: Alignment.center, width: 100, height: 25, decoration: BoxDecoration( color: AppColors.primeColor, borderRadius: BorderRadius.circular(25), ), child: RegularTextWidget( "Rate Now".tr, color: Colors.white, ), ).onTap(() { RoutingManager.to(RouteName.reviewForm); }), ], ).paddingSymmetric(horizontal: 20, vertical: 5), const ViewRatingsWidget(), ], ), // child: Column( // children: [ // Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: [ // Row( // children: [ // RegularTextWidget("Number of users who rate this : ".tr), // RegularTextWidget("10".tr), // ], // ), // Container( // alignment: Alignment.center, // width: 100, // height: 25, // decoration: BoxDecoration( // color: AppColors.primeColor, // borderRadius: BorderRadius.circular(25), // ), // child: RegularTextWidget( // "Rate Now".tr, // color: Colors.white, // ), // ).onTap(() { // dialog(); // cardController.currentIndex(0); // }) // ], // ), // Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: [ // Column( // children: [ // const Stack( // alignment: Alignment.center, // children: [ // StarWidget(maxRating: 1, starSize: 60, readOnly: true), // RegularTextWidget( // "2.5", // color: Colors.black, // ), // ], // ), // RegularTextWidget("Waiting".tr), // ], // ), // Column( // children: [ // const Stack( // alignment: Alignment.center, // children: [ // StarWidget(maxRating: 1, starSize: 60, readOnly: true), // RegularTextWidget( // "2.5", // color: Colors.black, // ), // ], // ), // RegularTextWidget("Performance".tr), // ], // ), // Column( // children: [ // const Stack( // alignment: Alignment.center, // children: [ // StarWidget(maxRating: 1, starSize: 60, readOnly: true), // RegularTextWidget( // "2.5", // color: Colors.black, // ), // ], // ), // RegularTextWidget("Price".tr), // ], // ) // ], // ).paddingOnly(top: 10).paddingSymmetric(horizontal: 20), // ], // ).paddingSymmetric(horizontal: 10, vertical: 10), ).onTap(() { RoutingManager.to(RouteName.feedback); log("message"); }); } final PageController pageController = PageController(); final List rate = [ "waiting?", "Performance?", "Price?", "Feedback", ]; final List stars = [ const StarWidget(maxRating: 5, starSize: 30, readOnly: false), const StarWidget(maxRating: 5, starSize: 30, readOnly: false), const StarWidget(maxRating: 5, starSize: 30, readOnly: false), Container( alignment: Alignment.topCenter, width: Get.width * .5, height: 55, child: TextFormField( onChanged: (value) {}, maxLines: 4, textInputAction: TextInputAction.newline, keyboardType: TextInputType.multiline, ), ), // TextFieldWidget( // keyboardType: TextInputType.multiline, // label: "", // onChange: (value) {}, // maxLines: 5, // textInputAction: TextInputAction.newline, // validate: (p0) { // return null; // }, // ), ]; void dialog() { Get.defaultDialog( onWillPop: () async { cardController.currentIndex(0); return true; }, confirm: Obx(() { return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ RegularTextWidget( "back".tr, color: Colors.black, ).onTap(() { if (cardController.currentIndex.value == 0) { RoutingManager.back(); } pageController.animateToPage(cardController.currentIndex.value - 1, duration: const Duration(milliseconds: 250), curve: Curves.easeIn); }), ButtonWidget( width: 80, onTap: () { if (cardController.currentIndex.value == 3) { RoutingManager.back(); } pageController.animateToPage(cardController.currentIndex.value + 1, duration: const Duration(milliseconds: 250), curve: Curves.easeIn); }, title: cardController.currentIndex.value == 3 ? "OK".tr : "Next".tr), ], ).paddingSymmetric(horizontal: 20); }), backgroundColor: Colors.white, title: "", middleText: "", content: SizedBox( width: Get.width * .5, height: Get.height * .15, child: PageView.builder( physics: const BouncingScrollPhysics(), controller: pageController, onPageChanged: (value) { cardController.changeCurrentIndex(value); }, itemCount: 4, itemBuilder: (BuildContext context, index) { return Column( children: [ BoldTextWidget(rate[index].tr).paddingOnly(bottom: 30), stars[index], // SizedBox( // width: Get.width * .8, // child: RegularTextWidget( // textAlign: TextAlign.center, // text[index].tr, // color: Colors.black, // ), // ) ], ); }, ), )); } }