From 7b580b37dbd0d4f2aec4a6b198c424886df7c6ef Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Thu, 8 Feb 2024 16:55:14 +0100 Subject: [PATCH] Erweiterungen --- lib/content_views/messages_page.dart | 61 +++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/lib/content_views/messages_page.dart b/lib/content_views/messages_page.dart index 4a227ab..b1c1755 100644 --- a/lib/content_views/messages_page.dart +++ b/lib/content_views/messages_page.dart @@ -84,6 +84,9 @@ class _MessagesPageState extends State { showUserAvatars: false, showUserNames: false, user: _user, + onMessageTap: (context, message) => { + _showDeleteMessageDialog(context, message) + }, ), ], ); @@ -129,8 +132,10 @@ class _MessagesPageState extends State { _messages.insert(0, types.TextMessage( author: message.from == _sid ? _user : _central, - createdAt: DateTime.parse(message.time).millisecondsSinceEpoch, - id: const Uuid().v4().toString(), + createdAt: DateTime + .parse(message.time) + .millisecondsSinceEpoch, + id: message.id.toString(), text: text, )); @@ -142,4 +147,56 @@ class _MessagesPageState extends State { setState(() {}); } + + _showDeleteMessageDialog(BuildContext context, types.Message message) async { + await showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + contentPadding: EdgeInsets.zero, + shadowColor: Colors.transparent, + backgroundColor: Colors.white, + content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) { + return SizedBox( + key: GlobalKey(), + height: 120, + width: MediaQuery + .of(context) + .size + .width * 1.2, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + height: 100, + padding: const EdgeInsets.all(5), + child: Column( + children: [ + const Text('Soll die Nachricht gelöscht werden?'), + const SizedBox(height: 20), + Row(children: [ + Expanded( + child: getDefaultButton('Nein', () => {Navigator.of(context).pop()}), + ), + const SizedBox(width: 20), + Expanded( + child: getDefaultButton('Ja', () => { + MyApp.isarInstance.writeTxnSync(() => {MyApp.isarInstance.messages.deleteSync(int.parse(message.id))}), + + _fetchMessages(), + + setState(() {}), + + Navigator.of(context).pop() + }), + ) + ]) + ], + ), + ), + ) + ); + }) + ); + }); + } }