diff --git a/lib/UserDefinedList.dart b/lib/UserDefinedList.dart index 2a1547e..73eecee 100644 --- a/lib/UserDefinedList.dart +++ b/lib/UserDefinedList.dart @@ -94,9 +94,6 @@ class UserDefinedItem extends StatelessWidget { } - - - class NewsList extends StatefulWidget { const NewsList({Key? key}) : super(key: key); @@ -114,6 +111,122 @@ class _NewsListState extends State { newsStream = firestore.collection('News').snapshots(); } + @override + Widget build(BuildContext context) { + return StreamBuilder( + stream: newsStream, + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.hasError) { + return Text('Error: ${snapshot.error}'); + } + switch (snapshot.connectionState) { + case ConnectionState.waiting: + return const Text('Loading...'); + default: + final List documents = snapshot.data!.docs; + return ListView.builder( + itemCount: documents.length, + itemBuilder: (BuildContext context, int index) { + final Map data = documents[index].data()! as Map; + final DateTime createdDate = data['createdDate'].toDate(); + final formattedDate = DateFormat('dd.MM.yyyy').format(createdDate); + return Dismissible( + key: Key(documents[index].id), + direction: DismissDirection.endToStart, + onDismissed: (direction) async { + await firestore.collection('News').doc(documents[index].id).delete(); + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text("News wurde gelöscht"), + )); + }, + background: Container( + color: Colors.red, + alignment: Alignment.centerRight, + child: const Icon( + Icons.delete, + color: Colors.white, + ), + ), + child: UserDefinedItem( + title: data['title'] ?? '', + datum: formattedDate, + description: data['description'] ?? '', + image: Image.network((data['imageUrl'])), + ), + ); + }, + ); + } + }, + ); + } +} + + +/* +class NewsList extends StatefulWidget { + const NewsList({Key? key}) : super(key: key); + + @override + _NewsListState createState() => _NewsListState(); +} + +class _NewsListState extends State { + final FirebaseFirestore firestore = FirebaseFirestore.instance; + late Stream newsStream; + + @override + void initState() { + super.initState(); + newsStream = firestore.collection('News').snapshots(); + } + + @override + Widget build(BuildContext context) { + return StreamBuilder( + stream: newsStream, + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.hasError) { + return Text('Error: ${snapshot.error}'); + } + switch (snapshot.connectionState) { + case ConnectionState.waiting: + return const Text('Loading...'); + default: + final List documents = snapshot.data!.docs; + return ListView.builder( + itemCount: documents.length, + itemBuilder: (BuildContext context, int index) { + final Map data = documents[index] + .data()! as Map; + final DateTime createdDate = data['createdDate'].toDate(); + final formattedDate = DateFormat('dd.MM.yyyy').format( + createdDate); + return Dismissible( + key: UniqueKey(), + onDismissed: (direction) { + setState(() { + documents.removeAt(index); + }); + }, + child: UserDefinedItem( + title: data['title'] ?? '', + datum: formattedDate, + description: data['description'] ?? '', + image: Image.network((data['imageUrl'])), + ), + ); + }, + ); + } + }, + ); + } +} +*/ + + + /* @override Widget build(BuildContext context) { return StreamBuilder( @@ -146,7 +259,7 @@ class _NewsListState extends State { ); } } - +*/ class IssueList extends StatefulWidget { const IssueList({Key? key}) : super(key: key);