feat: Added delete dialog and added dismiss dialog in case of message flagged

This commit is contained in:
Deven Joshi
2021-01-12 15:11:52 +05:30
parent 1556564ea7
commit b402add586
+30 -5
View File
@@ -1,3 +1,4 @@
import 'dart:convert';
import 'dart:ui';
import 'package:flutter/foundation.dart';
@@ -253,6 +254,34 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
try {
await client.flagMessage(widget.message.id);
_showDismissAlert();
} catch (err) {
if (json.decode(err?.body ?? {})['code'] == 4) {
_showDismissAlert();
} else {
_showErrorAlert();
}
}
}
}
void _showDeleteDialog() async {
var answer = await showConfirmationDialog(context,
title: 'Delete message',
icon: StreamSvgIcon.flag(
color: StreamChatTheme.of(context).colorTheme.accentRed,
size: 24.0,
),
question: 'Are you sure you want to permanently delete this\nmessage?',
okText: 'DELETE',
cancelText: 'CANCEL');
if (answer) {
try {
Navigator.pop(context);
StreamChat.of(context).client.deleteMessage(
widget.message,
StreamChannel.of(context).channel.cid,
);
} catch (err) {
_showErrorAlert();
}
@@ -455,11 +484,7 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
],
),
onTap: () {
Navigator.pop(context);
StreamChat.of(context).client.deleteMessage(
widget.message,
StreamChannel.of(context).channel.cid,
);
_showDeleteDialog();
},
);
}