import 'package:SEFER/controller/home/map_passenger_controller.dart'; import 'package:flutter/material.dart'; import 'package:flutter_rating_bar/flutter_rating_bar.dart'; import 'package:get/get.dart'; import '../../constant/box_name.dart'; import '../../constant/colors.dart'; import '../../constant/style.dart'; import '../../controller/firebase/firbase_messge.dart'; import '../../controller/payment/payment_controller.dart'; import '../../controller/rate/rate_conroller.dart'; import '../../main.dart'; import '../widgets/elevated_btn.dart'; import '../widgets/my_scafold.dart'; class RateDriverFromPassenger extends StatelessWidget { RateDriverFromPassenger({super.key}); final RateController controller = Get.put(RateController()); @override Widget build(BuildContext context) { return MyScafolld( title: 'Rate Driver'.tr, body: [ Positioned( top: 10, left: Get.width * .1, right: Get.width * .1, child: Container( // height: Get.height * 6, decoration: AppStyle.boxDecoration1, child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Padding( padding: const EdgeInsets.all(4), child: Container( height: Get.height * .5, decoration: AppStyle.boxDecoration1, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Text( '${'Total price to '.tr}${Get.find().firstName}', style: AppStyle.title, ), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Container( decoration: BoxDecoration( border: Border.all( width: 2, color: AppColor.redColor, )), child: Padding( padding: const EdgeInsets.all(4), child: Text( (double.parse(controller.price .toString()) * .12 + double.parse(controller.price .toString())) .toStringAsFixed(2), style: AppStyle.number.copyWith( color: AppColor.redColor, textBaseline: TextBaseline.ideographic, decoration: TextDecoration.lineThrough, decorationColor: AppColor.redColor), ), ), ), const SizedBox( height: 10, ), Container( decoration: BoxDecoration( border: Border.all( width: 2, color: AppColor.greenColor, )), child: Padding( padding: const EdgeInsets.all(4), child: Text( controller.price.toString(), style: AppStyle.number, ), ), ), ], ), const SizedBox( height: 10, ), Padding( padding: const EdgeInsets.all(4.0), child: Text( 'Exclusive offers and discounts always with the Sefer app' .tr, style: AppStyle.title.copyWith( color: AppColor.redColor, ), textAlign: TextAlign.center, ), ), (Get.find().isCashChecked == false && Get.find() .isWalletChecked == true) ? const DriverTipWidget() : const SizedBox(), ], ), )), ), Center( child: RatingBar.builder( initialRating: 0, itemCount: 5, itemSize: 50, itemPadding: const EdgeInsets.symmetric(horizontal: 2), itemBuilder: (context, index) { switch (index) { case 0: return const Icon( Icons.sentiment_very_dissatisfied, color: Colors.red, ); case 1: return const Icon( Icons.sentiment_dissatisfied, color: Colors.redAccent, ); case 2: return const Icon( Icons.sentiment_neutral, color: Colors.amber, ); case 3: return const Icon( Icons.sentiment_satisfied, color: Colors.lightGreen, ); case 4: return const Icon( Icons.sentiment_very_satisfied, color: Colors.green, ); default: return const Icon( Icons.sentiment_neutral, color: Colors.amber, ); } // }, onRatingUpdate: (rating) { controller.selectRateItem(rating); }, ), ), const SizedBox( height: 20, ), SizedBox( width: Get.width * .75, child: TextFormField( maxLines: 4, minLines: 1, keyboardType: TextInputType.multiline, controller: controller.comment, decoration: InputDecoration( labelText: 'Enter your Note'.tr, hintText: 'Type something...'.tr, prefixIcon: const Icon( Icons.rate_review), // Add an icon as a prefix suffixIcon: IconButton( icon: const Icon( Icons.clear, color: AppColor.redColor, ), // Add an icon as a suffix onPressed: () { controller.comment.clear(); }, ), border: const OutlineInputBorder(), // Add a border around the input field enabledBorder: const OutlineInputBorder( borderSide: BorderSide( color: Colors.blue), // Customize the border color ), focusedBorder: const OutlineInputBorder( borderSide: BorderSide( color: Colors .green), // Customize the border color when focused ), errorBorder: const OutlineInputBorder( borderSide: BorderSide( color: Colors .red), // Customize the border color when there's an error ), ), ), ), const SizedBox( height: 20, ), MyElevatedButton( title: 'Submit rating'.tr, onPressed: () => controller.addRateToDriver()) ], ), )), ], isleading: false); } }