import 'package:flutter/material.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; void TambahSatpam(BuildContext context) { String email = ''; String password = ''; String namaSatpam = ''; String nomorSatpam = ''; // Fungsi untuk memvalidasi email bool isValidEmail(String email) { String pattern = r'^[^@]+@[^@]+\.[^@]+$'; RegExp regex = RegExp(pattern); return regex.hasMatch(email); } showModalBottomSheet( isScrollControlled: true, backgroundColor: Colors.white, context: context, builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( top: 20, right: 20, left: 20, bottom: MediaQuery.of(context).viewInsets.bottom + 20, ), child: Column( mainAxisAlignment: MainAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ const Center( child: Text( "Tambah Data Satpam", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), ), TextField( onChanged: (value) { email = value; }, decoration: const InputDecoration( labelText: "Email", hintText: "aaa.email.com", ), ), TextField( onChanged: (value) { password = value; }, decoration: const InputDecoration( labelText: "Password", hintText: "minimal 6 karakter", ), ), TextField( onChanged: (value) { namaSatpam = value; }, decoration: const InputDecoration( labelText: "Nama Satpam", hintText: "Nama lengkap satpam", ), ), TextField( onChanged: (value) { nomorSatpam = value; }, decoration: const InputDecoration( labelText: "Nomor Satpam", hintText: "Nomor telepon satpam", ), ), const SizedBox(height: 20,), ElevatedButton( onPressed: () { if (email.isEmpty || password.isEmpty || namaSatpam.isEmpty || nomorSatpam.isEmpty) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('Data Wajib Terisi Semua Dengan Benar'), ), ); Navigator.pop(context); } else if (!isValidEmail(email)) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('Format email tidak valid'), ), ); Navigator.pop(context); } else { FirebaseFirestore.instance.collection('satpam').add({ 'email': email, 'password': password, 'nama': namaSatpam, 'nomor': nomorSatpam, }).then((_) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('Data satpam berhasil ditambahkan'), ), ); Navigator.pop(context); }).catchError((error) { print('Error adding satpam data: $error'); ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('Gagal menambahkan data satpam'), ), ); }); } }, child: const Text("Tambah"), ) ], ), ); }, ); }