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/links.dart'; import '../../constant/style.dart'; import '../../controller/home/map_passenger_controller.dart'; import '../../controller/rate/rate_conroller.dart'; import '../widgets/elevated_btn.dart'; import '../widgets/my_scafold.dart'; // ملاحظة: تم حذف جميع الأكواد المتعلقة بالسعر والإكرامية كما طُلِب. // التركيز الآن على التقييم والملاحظات فقط. class RatingDriverBottomSheet extends StatelessWidget { RatingDriverBottomSheet({super.key}); final RateController controller = Get.put(RateController()); @override Widget build(BuildContext context) { // تم تبسيط استخدام MyScafolld لإزالة الـ Positioned واستخدام تصميم مركزي ونظيف. return MyScafolld( title: 'Rate Driver'.tr, body: [ Center( child: Container( width: Get.width * .85, padding: const EdgeInsets.all(24), // يفترض أن AppStyle.boxDecoration1 يوفر تصميمًا جميلاً مع حواف مدورة وظل. decoration: AppStyle.boxDecoration1, child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ // 1. قسم معلومات السائق والترحيب CircleAvatar( radius: 30, backgroundImage: NetworkImage( '${AppLink.server}/portrate_captain_image/${controller.driverId}.jpg'), onBackgroundImageError: (exception, stackTrace) => const Icon( Icons.person, size: 30, color: AppColor.blueColor), ), const SizedBox(height: 16), // رسالة ترحيب مركزة على تجربة الرحلة Text( '${'How was your trip with'.tr} ${controller.driverName}?', style: AppStyle.title .copyWith(fontSize: 20, fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), const SizedBox(height: 12), // نص إرشادي يؤكد على أهمية التقييم لتحسين الجودة Text( 'Your valuable feedback helps us improve our service quality.' .tr, style: AppStyle.title .copyWith(color: Colors.grey.shade600, fontSize: 14), textAlign: TextAlign.center, ), const SizedBox(height: 32), // 2. شريط التقييم (النجمي) Center( child: RatingBar.builder( initialRating: 0, itemCount: 5, itemSize: 50, // حجم كبير لجعله النقطة البؤرية glow: true, glowColor: Colors.amber.shade200, itemPadding: const EdgeInsets.symmetric(horizontal: 4), 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.star_rounded, color: Colors.amber); } }, onRatingUpdate: (rating) { controller.selectRateItem(rating); }, ), ), const SizedBox(height: 32), // 3. قسم التعليقات (الملاحظات) SizedBox( width: Get.width * .75, child: TextFormField( maxLines: 4, minLines: 1, keyboardType: TextInputType.multiline, controller: controller.comment, decoration: InputDecoration( labelText: 'Leave a detailed comment (Optional)'.tr, hintText: 'Share your experience to help us improve...'.tr, prefixIcon: const Icon(Icons.rate_review, color: Colors.blueGrey), suffixIcon: IconButton( icon: const Icon(Icons.clear, color: AppColor.redColor), onPressed: () { controller.comment.clear(); }, ), // تحسين شكل الحدود لتكون أكثر جمالية border: OutlineInputBorder( borderRadius: BorderRadius.circular(12)), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: Colors.blueGrey, width: 1), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide( color: AppColor.greenColor, width: 2), // لون جذاب عند التركيز ), ), ), ), const SizedBox(height: 32), // 4. زر الإرسال MyElevatedButton( title: 'Submit Rating'.tr, onPressed: () { controller.addRateToDriver(); Get.find() .getRideStatusFromStartApp(); }) ], ), ), ), ], isleading: false, ); } }