Vorhandene News können mit swipe nach rechts gelöscht werden
This commit is contained in:
@@ -118,7 +118,6 @@ class NewsList extends StatefulWidget {
|
|||||||
@override
|
@override
|
||||||
_NewsListState createState() => _NewsListState();
|
_NewsListState createState() => _NewsListState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _NewsListState extends State<NewsList> {
|
class _NewsListState extends State<NewsList> {
|
||||||
final FirebaseFirestore firestore = FirebaseFirestore.instance;
|
final FirebaseFirestore firestore = FirebaseFirestore.instance;
|
||||||
late Stream<QuerySnapshot> newsStream;
|
late Stream<QuerySnapshot> newsStream;
|
||||||
@@ -140,6 +139,14 @@ class _NewsListState extends State<NewsList> {
|
|||||||
.snapshots(includeMetadataChanges: true);
|
.snapshots(includeMetadataChanges: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _deleteNews(String newsId) async {
|
||||||
|
try {
|
||||||
|
await firestore.collection('News').doc(newsId).delete();
|
||||||
|
} catch (e) {
|
||||||
|
print('Error deleting news: $e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StreamBuilder<QuerySnapshot>(
|
return StreamBuilder<QuerySnapshot>(
|
||||||
@@ -158,15 +165,32 @@ class _NewsListState extends State<NewsList> {
|
|||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
final Map<String, dynamic> data =
|
final Map<String, dynamic> data =
|
||||||
documents[index].data()! as Map<String, dynamic>;
|
documents[index].data()! as Map<String, dynamic>;
|
||||||
final DateTime createdDate =
|
final String newsId = documents[index].id;
|
||||||
data['createdDate'].toDate();
|
final DateTime createdDate = data['createdDate'].toDate();
|
||||||
final formattedDate =
|
final formattedDate =
|
||||||
DateFormat('dd.MM.yyyy').format(createdDate);
|
DateFormat('dd.MM.yyyy').format(createdDate);
|
||||||
return UserDefinedItem(
|
return Dismissible(
|
||||||
title: data['title'] ?? '',
|
key: UniqueKey(),
|
||||||
datum: formattedDate,
|
direction: DismissDirection.endToStart,
|
||||||
description: data['description'] ?? '',
|
onDismissed: (direction) {
|
||||||
imageUrl: data['imageUrl'] ?? '',
|
_deleteNews(newsId);
|
||||||
|
},
|
||||||
|
background: Container(
|
||||||
|
color: Colors.red,
|
||||||
|
child: Align(
|
||||||
|
alignment: Alignment.centerRight,
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.only(right: 16),
|
||||||
|
child: Icon(Icons.delete, color: Colors.white),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: UserDefinedItem(
|
||||||
|
title: data['title'] ?? '',
|
||||||
|
datum: formattedDate,
|
||||||
|
description: data['description'] ?? '',
|
||||||
|
imageUrl: data['imageUrl'] ?? '',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -175,6 +199,8 @@ class _NewsListState extends State<NewsList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class IssueList extends StatefulWidget {
|
class IssueList extends StatefulWidget {
|
||||||
const IssueList({Key? key}) : super(key: key);
|
const IssueList({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user