From 0f3fe75bad34bb6d1f80c66d581912be638dffab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Thu, 8 Jun 2023 21:07:17 +0200 Subject: [PATCH] Made chat messages deletable --- .../talk/deleteMessage/deleteMessage.dart | 22 +++++++++++++++++++ lib/view/pages/talk/chatBubble.dart | 16 ++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 lib/api/marianumcloud/talk/deleteMessage/deleteMessage.dart diff --git a/lib/api/marianumcloud/talk/deleteMessage/deleteMessage.dart b/lib/api/marianumcloud/talk/deleteMessage/deleteMessage.dart new file mode 100644 index 0000000..c1be06f --- /dev/null +++ b/lib/api/marianumcloud/talk/deleteMessage/deleteMessage.dart @@ -0,0 +1,22 @@ +import 'package:http/http.dart' as http; +import 'package:http/http.dart'; + +import '../../../apiParams.dart'; +import '../talkApi.dart'; + +class DeleteMessage extends TalkApi { + String chatToken; + int messageId; + DeleteMessage(this.chatToken, this.messageId) : super("v1/chat/$chatToken/$messageId", null); + + @override + assemble(String raw) { + + } + + @override + Future? request(Uri uri, ApiParams? body, Map? headers) { + return http.delete(uri, headers: headers); + } + +} \ No newline at end of file diff --git a/lib/view/pages/talk/chatBubble.dart b/lib/view/pages/talk/chatBubble.dart index a985858..c630980 100644 --- a/lib/view/pages/talk/chatBubble.dart +++ b/lib/view/pages/talk/chatBubble.dart @@ -4,6 +4,9 @@ import 'package:flowder/flowder.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:jiffy/jiffy.dart'; +import 'package:marianum_mobile/api/marianumcloud/talk/deleteMessage/deleteMessage.dart'; +import 'package:marianum_mobile/model/chatList/chatProps.dart'; +import 'package:provider/provider.dart'; import '../../../api/marianumcloud/talk/chat/getChatResponse.dart'; import '../../../api/marianumcloud/talk/room/getRoomResponse.dart'; @@ -184,6 +187,19 @@ class _ChatBubbleState extends State { onTap: () => {}, ), ), + Visibility( + visible: widget.isSender, + child: ListTile( + leading: const Icon(Icons.delete_outline), + title: const Text("Nachricht löschen"), + onTap: () { + DeleteMessage(widget.chatData.token, widget.bubbleData.id).run().then((value) { + Provider.of(context, listen: false).run(); + Navigator.of(context).pop(); + }); + }, + ), + ), DebugTile(widget.bubbleData.toJson()).asTile(context), ], );