import 'package:baligh_dashboard/widgets/app_toast.dart'; import 'package:baligh_dashboard/widgets/custom_button.dart'; import 'package:baligh_dashboard/widgets/custom_text_field.dart'; import 'package:bot_toast/bot_toast.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; class AdminScreen extends StatefulWidget { const AdminScreen({super.key}); @override State createState() => _AdminScreenState(); } class _AdminScreenState extends State { TextEditingController usernameController = TextEditingController(); TextEditingController passwordController = TextEditingController(); String selectedRole = "التحرش"; List availableRoles = [ "التحرش", "التعنيف", "الابتزاز", "المخدرات", "الرشوة", ]; bool isLoading = false; @override void dispose() { usernameController.dispose(); passwordController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Directionality( textDirection: TextDirection.rtl, child: Scaffold( body: SafeArea( child: Center( child: ConstrainedBox( constraints: const BoxConstraints( maxWidth: 500, minWidth: 100, ), child: ListView( shrinkWrap: true, padding: const EdgeInsets.all(15), children: [ Text( "اضافى مشرف", style: Theme.of(context).textTheme.headlineLarge, ), const SizedBox( height: 50, ), CustomTextField( controller: usernameController, labelText: "اسم المشرف", inputType: TextInputType.text), const SizedBox( height: 10, ), CustomTextField( controller: passwordController, labelText: "كلمة المرور", inputType: TextInputType.text, isPassword: true, ), const SizedBox( height: 10, ), Row( children: [ DropdownMenu( initialSelection: "التحرش", label: const Text("نوع البلاغ"), onSelected: (String? value) { setState(() { selectedRole = value ?? "التحرش"; }); }, dropdownMenuEntries: availableRoles .map>((value) { return DropdownMenuEntry( value: value, label: value, ); }).toList(), ), ], ), const SizedBox( height: 15, ), CustomButton( label: "اضافة المشرف", isElevated: true, onPressed: handleCreateAdmin, isLoading: isLoading, ), ], ), ), ), ), ), ); } Future handleCreateAdmin() async { if (passwordController.text.trim().isEmpty || usernameController.text.trim().isEmpty) { BotToast.showCustomText(toastBuilder: (_) { return const AppToast(text: "يجب ملئ جميع الحقول"); }); return; } setState(() { isLoading = true; }); try { await FirebaseFirestore.instance.collection("admins").add({ "role": selectedRole, "username": usernameController.text.trim(), "password": passwordController.text.trim(), "createdAt": FieldValue.serverTimestamp(), }); setState(() { isLoading = false; usernameController.clear(); passwordController.clear(); }); // if (!mounted) return; BotToast.showCustomText(toastBuilder: (_) { return const AppToast(text: "تم اضافة مشرف"); }); } catch (e) { print(e); setState(() { isLoading = false; }); BotToast.showCustomText(toastBuilder: (_) { return const AppToast(text: "حدث خطأ ما"); }); } } }