نسخة كاملة من مستودع سيرو عند ecfe7568 لتكون أساس تطبيق «انطلق». نُسخ المتعقَّب في git فقط (12,509 ملفاً / 302 م.ب) بـ git archive، لا `cp -r` — فاستُثنيت تلقائياً مخلفات البناء (build · node_modules · .dart_tool · .gradle · Pods ≈ 10.7 غ.ب) وكل ما يستثنيه .gitignore. هذا الكوميت **بلا أي تعديل عمداً** حتى يكون كل ما يليه فرقاً مقروءاً مقابل سيرو الأصلي. سيرو نفسه لم يُمسّ. ⚠️ لا يبني بعد: `.env` و`lib/env/env.g.dart` غير متعقَّبين في سيرو (وهذا صحيح — أسرار لكل مستأجر). كل تطبيق فلاتر هنا يحتاج .env خاصاً بانطلق ثم توليد env.g.dart عبر build_runner. لا تُنسخ أسرار سيرو. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
56 lines
1.6 KiB
Dart
56 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'otp_helper.dart';
|
|
|
|
class OtpVerificationAdmin extends StatefulWidget {
|
|
final String phone;
|
|
const OtpVerificationAdmin({super.key, required this.phone});
|
|
|
|
@override
|
|
State<OtpVerificationAdmin> createState() => _OtpVerificationAdminState();
|
|
}
|
|
|
|
class _OtpVerificationAdminState extends State<OtpVerificationAdmin> {
|
|
final _otpController = TextEditingController();
|
|
bool _isLoading = false;
|
|
|
|
Future<void> _verifyOtp() async {
|
|
setState(() => _isLoading = true);
|
|
|
|
final otpHelper = OtpHelper();
|
|
await otpHelper.verifyOtp(widget.phone, _otpController.text.trim());
|
|
// if (success) {
|
|
// Get.offAllNamed('/admin-dashboard');
|
|
// } else {
|
|
// Get.snackbar('خطأ', 'رمز التحقق غير صحيح');
|
|
// }
|
|
setState(() => _isLoading = false);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(title: const Text('التحقق من الرمز')),
|
|
body: Padding(
|
|
padding: const EdgeInsets.all(20.0),
|
|
child: Column(
|
|
children: [
|
|
TextFormField(
|
|
controller: _otpController,
|
|
keyboardType: TextInputType.number,
|
|
decoration: const InputDecoration(labelText: 'رمز التحقق'),
|
|
),
|
|
const SizedBox(height: 20),
|
|
_isLoading
|
|
? const CircularProgressIndicator()
|
|
: ElevatedButton(
|
|
onPressed: _verifyOtp,
|
|
child: const Text('تحقق وأدخل'),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|