import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; import '../cubit/auth_cubit.dart'; import '../cubit/auth_state.dart'; class OtpScreen extends StatefulWidget { const OtpScreen({super.key}); @override State createState() => _OtpScreenState(); } class _OtpScreenState extends State { final _controller = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( leading: IconButton( icon: const Icon(Icons.arrow_forward), onPressed: () => context.go('/phone'), ), ), body: SafeArea( child: Padding( padding: const EdgeInsets.all(24), child: BlocConsumer( listener: (context, state) { if (state.status == AuthStatus.error && state.error != null) { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(state.error!)), ); } }, builder: (context, state) { final loading = state.status == AuthStatus.authenticating; return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ const SizedBox(height: 24), Text('أدخل رمز التحقق', style: Theme.of(context).textTheme.titleLarge), const SizedBox(height: 8), Text('أُرسل إلى ${state.phone}'), const SizedBox(height: 28), TextField( controller: _controller, keyboardType: TextInputType.number, textAlign: TextAlign.center, decoration: const InputDecoration(labelText: 'الرمز'), ), const SizedBox(height: 20), FilledButton( onPressed: loading ? null : () => context.read().verify(_controller.text), child: loading ? const SizedBox( height: 22, width: 22, child: CircularProgressIndicator(strokeWidth: 2), ) : const Text('تأكيد'), ), ], ); }, ), ), ), ); } }