From 4d7428d4a4a675589a269fca627612f77f84fa3d Mon Sep 17 00:00:00 2001 From: wcjord <32568597+wcjord@users.noreply.github.com> Date: Thu, 17 Apr 2025 15:52:27 -0400 Subject: [PATCH] feat(event_info_dialog): button to copy info (#2492) --- lib/pages/chat/event_info_dialog.dart | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/pages/chat/event_info_dialog.dart b/lib/pages/chat/event_info_dialog.dart index dca325dfd..aafd63c33 100644 --- a/lib/pages/chat/event_info_dialog.dart +++ b/lib/pages/chat/event_info_dialog.dart @@ -1,14 +1,13 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; - -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:matrix/matrix.dart'; - import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; extension EventInfoDialogExtension on Event { void showInfoDialog(BuildContext context) => showAdaptiveBottomSheet( @@ -69,7 +68,23 @@ class EventInfoDialog extends StatelessWidget { title: Text('${L10n.of(context).status}:'), subtitle: Text(event.status.name), ), - ListTile(title: Text('${L10n.of(context).sourceCode}:')), + ListTile( + title: Text('${L10n.of(context).sourceCode}:'), + //#Pangea + trailing: IconButton( + icon: const Icon(Icons.copy), + onPressed: () { + Clipboard.setData( + ClipboardData(text: event.toJson().toString())); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(L10n.of(context).copiedToClipboard), + ), + ); + }, + ), + ), + //Pangea# Padding( padding: const EdgeInsets.all(12.0), child: Material(