fix(rider): تعطيل أنواع الرحلات بلا تعرفة نشطة
فحص حيّ كشف أن `GET /ride-types` يرجّع ستّة أنواع للمستأجر siro بينما ثلاثة فقط لها تعرفة نشطة: economy 1.55 · comfort 1.85 · electric 1.75 ✅ family_van · women · scooter ❌ 404 أي أن الراكب يرى ستّة خيارات، وثلاثة منها لو اختارها يفشل طلب الرحلة بـ «No pricing available» بعد أن يكون قد أكمل تحديد وجهته. المعالجة في التطبيق: النوع بلا تعرفة يظهر **معطّلاً مكتوباً عليه «غير متاح»** لا مخفياً — إخفاؤه يترك المستخدم يتساءل أين ذهب الخيار، وإظهاره قابلاً للاختيار يوصله إلى فشل بعد خطوتين. وإن كان المختار بلا تعرفة يُنتقل تلقائياً لأول نوع مسعَّر، فلا يبقى زرّ التأكيد معطّلاً بلا سبب ظاهر. هذا علاج للعَرَض؛ السبب بيانات على الخادم: كتالوج ride-types والتعرفات غير متزامنين. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8976821a93
commit
3a8caf7b27
@@ -283,10 +283,16 @@ class RideCubit extends Cubit<RideState> {
|
||||
final quotes = Map<String, FareQuote>.fromEntries(
|
||||
results.whereType<MapEntry<String, FareQuote>>(),
|
||||
);
|
||||
final selected = state.selectedRideType;
|
||||
// إن كان المختار بلا تعرفة، ننتقل لأول نوع مسعَّر: تركُه مختاراً يعني
|
||||
// زرَّ تأكيد معطّلاً بلا سبب ظاهر.
|
||||
var selected = state.selectedRideType;
|
||||
if (selected == null || !quotes.containsKey(selected.code)) {
|
||||
selected = types.where((t) => quotes.containsKey(t.code)).firstOrNull;
|
||||
}
|
||||
|
||||
emit(state.copyWith(
|
||||
quotes: quotes,
|
||||
selectedRideType: selected,
|
||||
quote: selected == null ? null : quotes[selected.code],
|
||||
busy: false,
|
||||
error: quotes.isEmpty ? RideError.quoteFailed : RideError.none,
|
||||
|
||||
Reference in New Issue
Block a user