import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../../core/di.dart'; import '../../../core/ui/view_status.dart'; import '../../../core/ui/tripz_scaffold.dart'; import '../cubit/onboarding_cubit.dart'; import '../cubit/onboarding_state.dart'; import 'steps/apply_step.dart'; import 'steps/documents_step.dart'; import 'steps/pending_step.dart'; import 'steps/profile_step.dart'; import 'steps/vehicle_step.dart'; /// مضيف تسجيل السائق. الخطوة تُشتقّ من حالة الخادم في كل مرة — سائق يعيد /// تثبيت التطبيق يعود إلى حيث وقف لا إلى البداية. class OnboardingPage extends StatefulWidget { const OnboardingPage({super.key}); @override State createState() => _OnboardingPageState(); } class _OnboardingPageState extends State { late final OnboardingCubit _cubit = sl()..load(); @override void dispose() { _cubit.close(); super.dispose(); } @override Widget build(BuildContext context) { return BlocProvider.value( value: _cubit, child: BlocBuilder( builder: (context, state) => switch (state.step) { OnboardingStep.loading => const TripzScaffold( showAppBar: false, status: ViewStatus.loading, child: SizedBox.shrink(), ), OnboardingStep.apply => ApplyStep(state: state), OnboardingStep.profile => ProfileStep(state: state), OnboardingStep.vehicle => VehicleStep(state: state), OnboardingStep.documents => DocumentsStep(state: state), OnboardingStep.pending => const PendingStep(approved: false), OnboardingStep.approved => const PendingStep(approved: true), }, ), ); } }