import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:siro_admin/controller/auth/register_controller.dart'; class _C { static const bg = Color(0xFF0A0D14); static const card = Color(0xFF161D2E); static const border = Color(0xFF1F2D4A); static const accent = Color(0xFF00E5FF); static const textPrimary = Color(0xFFE8F0FE); static const textSec = Color(0xFF7A8BAA); static const inputBg = Color(0xFF0C1120); } class AdminRegisterPage extends StatelessWidget { const AdminRegisterPage({super.key}); @override Widget build(BuildContext context) { final controller = Get.put(AdminRegisterController()); return Scaffold( backgroundColor: _C.bg, appBar: AppBar( backgroundColor: Colors.transparent, elevation: 0, leading: IconButton( icon: const Icon(Icons.arrow_back_ios, color: _C.textPrimary), onPressed: () => Get.back(), ), ), body: SafeArea( child: Center( child: SingleChildScrollView( padding: const EdgeInsets.symmetric(horizontal: 28), child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 440), child: Form( key: controller.formKey, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const Icon(Icons.admin_panel_settings, size: 80, color: _C.accent), const SizedBox(height: 24), const Text( 'تسجيل مشرف جديد', style: TextStyle( color: _C.textPrimary, fontSize: 26, fontWeight: FontWeight.w800, ), ), const SizedBox(height: 8), const Text( 'أدخل بياناتك لتقديم طلب الإشراف', style: TextStyle(color: _C.textSec, fontSize: 14), ), const SizedBox(height: 40), Container( padding: const EdgeInsets.all(28), decoration: BoxDecoration( color: _C.card, borderRadius: BorderRadius.circular(24), border: Border.all(color: _C.accent.withOpacity(0.18), width: 1.2), ), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ _buildLabel('الاسم الكامل', Icons.person), const SizedBox(height: 10), _buildTextField( controller: controller.nameCtrl, hint: 'أحمد محمود', icon: Icons.person_outline, ), const SizedBox(height: 20), _buildLabel('رقم الهاتف', Icons.phone_android), const SizedBox(height: 10), _buildTextField( controller: controller.phoneCtrl, hint: '07XXXXXXXX', keyboardType: TextInputType.phone, icon: Icons.phone_outlined, ), const SizedBox(height: 20), _buildLabel('كلمة المرور', Icons.lock_outline), const SizedBox(height: 10), _buildTextField( controller: controller.passCtrl, hint: '••••••••', obscureText: true, icon: Icons.lock_outline, ), const SizedBox(height: 40), Obx(() => MaterialButton( onPressed: controller.isLoading.value ? null : () => controller.register(), color: _C.accent, height: 55, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), child: controller.isLoading.value ? const CircularProgressIndicator(color: _C.bg) : const Text( 'تقديم الطلب', style: TextStyle(color: _C.bg, fontSize: 18, fontWeight: FontWeight.bold), ), )), ], ), ), ], ), ), ), ), ), ), ); } Widget _buildLabel(String text, IconData icon) { return Row( children: [ Icon(icon, color: _C.accent, size: 16), const SizedBox(width: 8), Text( text, style: const TextStyle(color: _C.textSec, fontSize: 13, fontWeight: FontWeight.w600), ), ], ); } Widget _buildTextField({ required TextEditingController controller, required String hint, required IconData icon, bool obscureText = false, TextInputType keyboardType = TextInputType.text, }) { return TextFormField( controller: controller, obscureText: obscureText, keyboardType: keyboardType, style: const TextStyle(color: _C.textPrimary, fontSize: 16), decoration: InputDecoration( hintText: hint, hintStyle: const TextStyle(color: _C.textSec), filled: true, fillColor: _C.inputBg, prefixIcon: Icon(icon, color: _C.textSec), border: OutlineInputBorder(borderRadius: BorderRadius.circular(14), borderSide: BorderSide.none), focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(14), borderSide: const BorderSide(color: _C.accent, width: 1.5)), contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), ), validator: (val) => (val == null || val.isEmpty) ? 'هذا الحقل مطلوب' : null, ); } }