forked from Henry-Hiles/nexus
redact support
This commit is contained in:
parent
e59632bb07
commit
15ccddfad5
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/get_related_events_request.dart";
|
||||||
import "package:nexus/models/login_request.dart";
|
import "package:nexus/models/login_request.dart";
|
||||||
import "package:nexus/models/profile.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/report_request.dart";
|
||||||
import "package:nexus/models/room.dart";
|
import "package:nexus/models/room.dart";
|
||||||
import "package:nexus/models/sync_data.dart";
|
import "package:nexus/models/sync_data.dart";
|
||||||
|
|
@ -113,6 +114,9 @@ class ClientController extends AsyncNotifier<int> {
|
||||||
return response.buf.toJson();
|
return response.buf.toJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> redactEvent(RedactEventRequest report) =>
|
||||||
|
sendCommand("redact_event", report.toJson());
|
||||||
|
|
||||||
Future<bool> verify(String recoveryKey) async {
|
Future<bool> verify(String recoveryKey) async {
|
||||||
try {
|
try {
|
||||||
await sendCommand("verify", {"recovery_key": recoveryKey});
|
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/controllers/selected_room_controller.dart";
|
||||||
import "package:nexus/helpers/extensions/event_to_message.dart";
|
import "package:nexus/helpers/extensions/event_to_message.dart";
|
||||||
import "package:nexus/helpers/extensions/list_to_messages.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";
|
import "package:nexus/models/relation_type.dart";
|
||||||
|
|
||||||
class RoomChatController extends AsyncNotifier<ChatController> {
|
class RoomChatController extends AsyncNotifier<ChatController> {
|
||||||
|
|
@ -84,9 +85,17 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> deleteMessage(Message message, {String? reason}) async {
|
Future<void> deleteMessage(Message message, {String? reason}) async {
|
||||||
// final controller = await future;
|
final controller = await future;
|
||||||
// await controller.removeMessage(message);
|
await controller.removeMessage(message);
|
||||||
// await room.redactEvent(message.id, reason: reason);
|
await ref
|
||||||
|
.watch(ClientController.provider.notifier)
|
||||||
|
.redactEvent(
|
||||||
|
RedactEventRequest(
|
||||||
|
eventId: message.id,
|
||||||
|
roomId: roomId,
|
||||||
|
reason: reason,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> loadOlder() async {
|
Future<void> loadOlder() async {
|
||||||
|
|
@ -140,10 +149,12 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<chat.User> resolveUser(String id) async {
|
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(
|
return chat.User(
|
||||||
id: id,
|
id: id,
|
||||||
// name: user.displayname,
|
name: user?.displayName,
|
||||||
// imageSource: user.avatarUrl == null
|
// imageSource: user.avatarUrl == null
|
||||||
// ? null
|
// ? null
|
||||||
// : (await ref.watch(
|
// : (await ref.watch(
|
||||||
|
|
@ -152,8 +163,8 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final provider =
|
static final provider = AsyncNotifierProvider.family
|
||||||
AsyncNotifierProvider.family<RoomChatController, ChatController, String>(
|
.autoDispose<RoomChatController, ChatController, String>(
|
||||||
RoomChatController.new,
|
RoomChatController.new,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
lib/models/redact_event_request.dart
Normal file
3
lib/models/redact_event_request.dart
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
import "package:nexus/models/report_request.dart";
|
||||||
|
|
||||||
|
typedef RedactEventRequest = ReportRequest;
|
||||||
Loading…
Add table
Add a link
Reference in a new issue