redact support
This commit is contained in:
parent
7c76bb6e66
commit
b55c990b24
3 changed files with 25 additions and 7 deletions
|
|
@ -16,6 +16,7 @@ import "package:nexus/models/get_event_request.dart";
|
|||
import "package:nexus/models/get_related_events_request.dart";
|
||||
import "package:nexus/models/login_request.dart";
|
||||
import "package:nexus/models/profile.dart";
|
||||
import "package:nexus/models/redact_event_request.dart";
|
||||
import "package:nexus/models/report_request.dart";
|
||||
import "package:nexus/models/room.dart";
|
||||
import "package:nexus/models/sync_data.dart";
|
||||
|
|
@ -113,6 +114,9 @@ class ClientController extends AsyncNotifier<int> {
|
|||
return response.buf.toJson();
|
||||
}
|
||||
|
||||
Future<void> redactEvent(RedactEventRequest report) =>
|
||||
sendCommand("redact_event", report.toJson());
|
||||
|
||||
Future<bool> verify(String recoveryKey) async {
|
||||
try {
|
||||
await sendCommand("verify", {"recovery_key": recoveryKey});
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import "package:nexus/controllers/new_events_controller.dart";
|
|||
import "package:nexus/controllers/selected_room_controller.dart";
|
||||
import "package:nexus/helpers/extensions/event_to_message.dart";
|
||||
import "package:nexus/helpers/extensions/list_to_messages.dart";
|
||||
import "package:nexus/models/redact_event_request.dart";
|
||||
import "package:nexus/models/relation_type.dart";
|
||||
|
||||
class RoomChatController extends AsyncNotifier<ChatController> {
|
||||
|
|
@ -84,9 +85,17 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
|||
}
|
||||
|
||||
Future<void> deleteMessage(Message message, {String? reason}) async {
|
||||
// final controller = await future;
|
||||
// await controller.removeMessage(message);
|
||||
// await room.redactEvent(message.id, reason: reason);
|
||||
final controller = await future;
|
||||
await controller.removeMessage(message);
|
||||
await ref
|
||||
.watch(ClientController.provider.notifier)
|
||||
.redactEvent(
|
||||
RedactEventRequest(
|
||||
eventId: message.id,
|
||||
roomId: roomId,
|
||||
reason: reason,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> loadOlder() async {
|
||||
|
|
@ -140,10 +149,12 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
|||
}
|
||||
|
||||
Future<chat.User> resolveUser(String id) async {
|
||||
// final user = await room.client.getUserProfile(id);
|
||||
final user = await ref
|
||||
.watch(ClientController.provider.notifier)
|
||||
.getProfile(id);
|
||||
return chat.User(
|
||||
id: id,
|
||||
// name: user.displayname,
|
||||
name: user?.displayName,
|
||||
// imageSource: user.avatarUrl == null
|
||||
// ? null
|
||||
// : (await ref.watch(
|
||||
|
|
@ -152,8 +163,8 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
|||
);
|
||||
}
|
||||
|
||||
static final provider =
|
||||
AsyncNotifierProvider.family<RoomChatController, ChatController, String>(
|
||||
static final provider = AsyncNotifierProvider.family
|
||||
.autoDispose<RoomChatController, ChatController, String>(
|
||||
RoomChatController.new,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue