import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../utils/colors.dart';
class Pending extends StatefulWidget {
const Pending({super.key});
@override
State<Pending> createState() => _PendingState();
}
class _PendingState extends State<Pending> {
final FirebaseAuth _auth = FirebaseAuth.instance;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Expanded(
// Wrap with Expanded
child: StreamBuilder<QuerySnapshot>(
stream:
FirebaseFirestore.instance.collection("request").snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
final docs = snapshot.data!.docs;
return ListView.builder(
scrollDirection: Axis.vertical,
itemCount: docs.length,
itemBuilder: (context, index) {
final document = docs[index];
String c = _auth.currentUser!.email.toString();
String ch = 'Check';
if (c == document["EmailUserreq"] &&
document["Status"] == ch) {
return ListTile(
leading: const Icon(FontAwesomeIcons.solidHourglassHalf),
title: Text(document["Name"]),
subtitle: Column(
children: [
Row(
children: const [
Text('Status: Wait Approve'),
],
),
Row(
children: [Text(document["Timerequest"])],
)
],
),
trailing: TextButton(
onPressed: () => showDialog<String>(
context: context,
builder: (BuildContext context) => AlertDialog(
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(10.0))),
title: Text(
document["Name"],
style: Theme.of(context)
.textTheme
.headlineSmall!
.copyWith(fontWeight: FontWeight.bold),
),
content: Builder(builder: (context) {
return SizedBox(
height: 90,
width: 70,
child: Column(
children: [
Row(
children: const [
Spacer(),
Text(
'Are you sure\nto cancel this request?',
style: TextStyle(
fontWeight: FontWeight.w900,color: Colors.red),
),
Spacer(),
],
),
const SizedBox(
height: 10,
),
Row(
children: [
const Spacer(),
const Text('Borrowing Day : '),
Text(document["BorrowingDay"]),
const Spacer(),
],
),
Row(
children: [
const Spacer(),
const Text('Give back Day : '),
Text(document["ReturnDay"]),
const Spacer(),
],
),
],
),
);
}),
actions: <Widget>[
TextButton(
onPressed: () =>
Navigator.pop(context, 'Cancel'),
child: const Text('Cancel'),
),
TextButton(
onPressed: () {
deleteData(document.id);
Navigator.pop(context, 'Confirm');
},
child: const Text('Confirm',style: TextStyle(color: Colors.red),),
),
],
),
),
style: ElevatedButton.styleFrom(
foregroundColor: Colors.white,
backgroundColor: kRedColor,
),
child: const Text(
'Cancel',
),
),
);
}
return const SizedBox.shrink();
},
);
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return const CircularProgressIndicator();
}
},
),
),
],
),
);
}
Future<void> deleteData(String docId) async {
FirebaseFirestore.instance.collection('request').doc(docId).delete().then(
(value) => print('Updating done!'),
onError: (e) => print('Error $e'),
);
}
}