💄 Confirm when deleting message

This commit is contained in:
2025-10-08 23:54:59 +08:00
parent 27b390a51c
commit 0a301c4c9b
2 changed files with 15 additions and 1 deletions

View File

@@ -48,6 +48,8 @@
"deletePublisherHint": "Are you sure to delete this publisher? This will also deleted all the post and collections under this publisher.", "deletePublisherHint": "Are you sure to delete this publisher? This will also deleted all the post and collections under this publisher.",
"deletePost": "Delete Post", "deletePost": "Delete Post",
"deletePostHint": "Are you sure to delete this post?", "deletePostHint": "Are you sure to delete this post?",
"deleteMessage": "Delete Message",
"deleteMessageConfirmation": "Are you sure you want to delete this message?",
"copyLink": "Copy Link", "copyLink": "Copy Link",
"postCreateAccountTitle": "Thanks for joining!", "postCreateAccountTitle": "Thanks for joining!",
"postCreateAccountNext": "What's next?", "postCreateAccountNext": "What's next?",

View File

@@ -26,6 +26,7 @@ import 'package:island/widgets/post/post_shared.dart';
import 'package:material_symbols_icons/material_symbols_icons.dart'; import 'package:material_symbols_icons/material_symbols_icons.dart';
import 'package:styled_widget/styled_widget.dart'; import 'package:styled_widget/styled_widget.dart';
import 'package:island/widgets/content/sheet.dart'; import 'package:island/widgets/content/sheet.dart';
import 'package:island/widgets/alert.dart';
class MessageItemAction { class MessageItemAction {
static const String edit = "edit"; static const String edit = "edit";
@@ -369,6 +370,17 @@ class MessageHoverActionMenu extends StatelessWidget {
required this.remoteMessage, required this.remoteMessage,
}); });
Future<void> _handleDelete(BuildContext context) async {
final confirmed = await showConfirmAlert(
'deleteMessageConfirmation'.tr(),
'deleteMessage'.tr(),
);
if (confirmed) {
onAction?.call(MessageItemAction.delete);
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
@@ -397,7 +409,7 @@ class MessageHoverActionMenu extends StatelessWidget {
if (isCurrentUser) if (isCurrentUser)
IconButton( IconButton(
icon: Icon(Symbols.delete, size: 16), icon: Icon(Symbols.delete, size: 16),
onPressed: () => onAction?.call(MessageItemAction.delete), onPressed: () => _handleDelete(context),
tooltip: 'delete'.tr(), tooltip: 'delete'.tr(),
padding: const EdgeInsets.all(8), padding: const EdgeInsets.all(8),
constraints: const BoxConstraints(minWidth: 32, minHeight: 32), constraints: const BoxConstraints(minWidth: 32, minHeight: 32),