add ability to copy link to message

This commit is contained in:
Henry Hiles 2026-04-06 10:22:32 -04:00
commit 798eb3c3fd
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 18 additions and 1 deletions

View file

@ -103,7 +103,7 @@ A simple and user-friendly Matrix client made with Flutter and a Gomuks backend.
- [ ] Copy link to:
- [x] Room
- [x] Space
- [ ] Message
- [x] Message
- [ ] Reporting
- [x] Events
- [ ] Rooms

View file

@ -11,6 +11,7 @@ import "package:nexus/controllers/client_state_controller.dart";
import "package:nexus/controllers/power_level_controller.dart";
import "package:nexus/controllers/selected_room_controller.dart";
import "package:nexus/controllers/room_chat_controller.dart";
import "package:nexus/controllers/via_controller.dart";
import "package:nexus/helpers/extensions/better_when.dart";
import "package:nexus/helpers/extensions/show_context_menu.dart";
import "package:nexus/models/configs/power_level_config.dart";
@ -100,6 +101,22 @@ class RoomChat extends HookConsumerWidget {
},
child: ListTile(leading: Icon(Icons.edit), title: Text("Edit")),
),
PopupMenuItem(
onTap: () async {
final room = ref.watch(SelectedRoomController.provider);
if (room == null) return;
final vias = ref.watch(ViaController.provider(room));
await Clipboard.setData(
ClipboardData(
text:
"matrix:roomid/${room.metadata?.id.substring(1)}/e/${message.id}$vias)",
),
);
},
child: ListTile(leading: Icon(Icons.link), title: Text("Copy Link")),
),
if (ref.watch(
PowerLevelController.provider(
PowerLevelConfig(eventType: "m.room.redaction"),