import 'package:flutter/material.dart'; import 'package:flutter_rating_bar/flutter_rating_bar.dart'; import 'package:get/get.dart'; import '../../constant/colors.dart'; import '../../constant/style.dart'; import '../../controller/rate/rate_conroller.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: 40, left: Get.width * .1, right: Get.width * .1, child: Container( decoration: AppStyle.boxDecoration, child: Column( children: [ 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); } }