TKK_E32210095/lib/pages/tambah_satpam.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"),
)
],
),
);
},
);
}