124 lines
4.0 KiB
Dart
124 lines
4.0 KiB
Dart
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"),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|