Update: 2026-06-14 05:48:58

This commit is contained in:
Hamza-Ayed
2026-06-14 05:48:58 +03:00
parent 2645ed0cf1
commit 8e3b9eca4d
22 changed files with 789 additions and 179 deletions

View File

@@ -15,6 +15,7 @@ import '../../../../controller/firebase/notification_service.dart';
import '../../../../controller/functions/crud.dart';
import '../../../../constant/links.dart';
import '../../../widgets/my_textField.dart';
import '../../../../views/widgets/elevated_btn.dart';
class PassengerInfoWindow extends StatelessWidget {
const PassengerInfoWindow({super.key});
@@ -251,7 +252,7 @@ class PassengerInfoWindow extends StatelessWidget {
// --- الأزرار الرئيسية (وصلت / ابدأ) ---
if (!controller.isRideBegin)
_buildActionButtons(controller),
_buildActionButtons(context, controller),
// --- زر الإلغاء المدفوع (بعد انتهاء وقت الانتظار) ---
if (controller.isdriverWaitTimeEnd &&
@@ -372,7 +373,7 @@ class PassengerInfoWindow extends StatelessWidget {
);
}
Widget _buildActionButtons(MapDriverController controller) {
Widget _buildActionButtons(BuildContext context, MapDriverController controller) {
if (controller.isArrivedSend) {
return SizedBox(
width: double.infinity,
@@ -413,33 +414,33 @@ class PassengerInfoWindow extends StatelessWidget {
// وقد يُسبب Get.back() اللاحق إغلاق صفحة الماب بدلاً من الـ loading dialog
Get.defaultDialog(
title: "Start Trip?".tr,
titleStyle: const TextStyle(
titleStyle: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: AppColor.writeColor,
),
middleText: "Ensure the passenger is in the car.".tr,
middleTextStyle: TextStyle(
fontSize: 14,
color: AppColor.grayColor,
),
backgroundColor: Theme.of(context).cardColor,
barrierDismissible: true,
radius: 14,
confirm: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF27AE60),
foregroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10)),
),
radius: 18,
confirm: MyElevatedButton(
title: 'Start'.tr,
onPressed: () async {
// نُغلق الديالوج بـ Get.back() لضمان أن GetX يعرف أنه أُغلق
Get.back();
// ثم نُنفذ startRideFromDriver الذي يستخدم Get.dialog و Get.back بأمان
await controller.startRideFromDriver();
},
child: Text('Start'.tr,
style: const TextStyle(fontWeight: FontWeight.bold)),
kolor: AppColor.greenColor,
),
cancel: TextButton(
onPressed: () => Get.back(),
child: Text('Cancel'.tr,
style: const TextStyle(color: Colors.grey)),
child: Text(
'Cancel'.tr,
style: TextStyle(color: AppColor.grayColor, fontWeight: FontWeight.w600),
),
),
);
},