diff --git a/intaleq_rider/lib/controller/auth/otp_controller.dart b/intaleq_rider/lib/controller/auth/otp_controller.dart index 03da3ca..da684c2 100644 --- a/intaleq_rider/lib/controller/auth/otp_controller.dart +++ b/intaleq_rider/lib/controller/auth/otp_controller.dart @@ -97,6 +97,15 @@ class PhoneAuthHelper { // ✅ المستخدم موجود مسبقاً -> تسجيل دخول مباشر await _handleSuccessfulLogin(data['message']['passenger']); } else { + // ✅ Save the new JWT token for registration before navigating + final jwtToken = data['message']?['jwt'] ?? + data['message']?['token'] ?? + data['message']?['access_token']; + if (jwtToken != null && jwtToken.toString().isNotEmpty) { + box.write(BoxName.jwt, c(jwtToken.toString())); + await storage.write( + key: BoxName.jwt, value: c(jwtToken.toString())); + } // ✅ مستخدم جديد -> الذهاب لصفحة التسجيل mySnackbarSuccess( 'Phone verified. Please complete registration.'.tr); @@ -144,13 +153,16 @@ class PhoneAuthHelper { }, ); final data = (response); - if (data != 'failure') { - // Registration successful, log user in - - await _handleSuccessfulLogin(data['message']['data']); + if (data != 'failure' && data is Map) { + if (data['status'] == 'success') { + // Registration successful, log user in + await _handleSuccessfulLogin(data['message']['data']); + } else { + mySnackbarError( + data['message']?.toString() ?? "Registration failed.".tr); + } } else { - mySnackbarError( - "User with this phone number or email already exists.".tr); + mySnackbarError("Server error or user already exists.".tr); } } catch (e) { Log.print('e: ${e}'); diff --git a/intaleq_rider/lib/controller/payment/payment_controller.dart b/intaleq_rider/lib/controller/payment/payment_controller.dart index 7a2208e..1eeb41f 100644 --- a/intaleq_rider/lib/controller/payment/payment_controller.dart +++ b/intaleq_rider/lib/controller/payment/payment_controller.dart @@ -53,8 +53,13 @@ class PaymentController extends GetxController { await CRUD().getWallet( link: AppLink.getWalletByPassenger, payload: {'passenger_id': box.read(BoxName.passengerID)}).then((value) { - box.write(BoxName.passengerWalletTotal, - value['message'][0]['total'].toString()); + final msg = value['message']; + if (msg is List && msg.isNotEmpty) { + box.write(BoxName.passengerWalletTotal, + (msg[0]['total'] ?? '0').toString()); + } else { + box.write(BoxName.passengerWalletTotal, '0'); + } }); isLoading = false; update();