diff --git a/lib/controllers/client_controller.dart b/lib/controllers/client_controller.dart index f04dd41..1d844fa 100644 --- a/lib/controllers/client_controller.dart +++ b/lib/controllers/client_controller.dart @@ -170,24 +170,8 @@ class ClientController extends AsyncNotifier { Future sendMessage(SendMessageRequest request) async => Event.fromJson(await _sendCommand("send_message", request.toJson())); - Future sendEvent(SendEventRequest request) async { - final json = request.toJson(); - final content = request.content.toJson(); - - return Event.fromJson( - await _sendCommand("send_event", { - ...json, - "content": { - ...content, - "m.relates_to": { - ...((content["m.relates_to"] as Map?) ?? {}), - "event_id": request.relatesTo, - "rel_type": request.relationType, - }, - }, - }), - ); - } + Future sendEvent(SendEventRequest request) async => + Event.fromJson(await _sendCommand("send_event", request.toJson())); Future setState(SetStateRequest request) async => await _sendCommand("set_state", request.toJson()); diff --git a/lib/controllers/room_chat_controller.dart b/lib/controllers/room_chat_controller.dart index e738e09..b93885e 100644 --- a/lib/controllers/room_chat_controller.dart +++ b/lib/controllers/room_chat_controller.dart @@ -205,11 +205,15 @@ class RoomChatController extends AsyncNotifier?> { .new( roomId: roomId, type: EventType.reaction.type, - content: ReactionContent(key: reaction), + content: { + "m.relates_to": { + "event_id": event.eventId, + "rel_type": "m.annotation", + "key": reaction, + }, + }, synchronous: true, disableEncryption: true, - relatesTo: event.eventId, - relationType: "m.annotation", ), ); } diff --git a/lib/models/content/reaction.dart b/lib/models/content/reaction.dart index 0f81bc0..3115ae0 100644 --- a/lib/models/content/reaction.dart +++ b/lib/models/content/reaction.dart @@ -3,7 +3,7 @@ import "package:nexus/models/content/content.dart"; part "reaction.freezed.dart"; part "reaction.g.dart"; -@Freezed(toJson: false) +@freezed abstract class ReactionContent extends Content with _$ReactionContent { ReactionContent._(); static String? keyJsonFromJson(Map json, String key) => @@ -13,11 +13,6 @@ abstract class ReactionContent extends Content with _$ReactionContent { @JsonKey(readValue: ReactionContent.keyJsonFromJson) String? key, }) = _ReactionContent; - @override - Map toJson() => { - "m.relates_to": {"key": key}, - }; - factory ReactionContent.fromJson(Map json) => _$ReactionContentFromJson(json); } diff --git a/lib/models/requests/send_event_request.dart b/lib/models/requests/send_event_request.dart index 3721998..da5de32 100644 --- a/lib/models/requests/send_event_request.dart +++ b/lib/models/requests/send_event_request.dart @@ -1,5 +1,4 @@ import "package:freezed_annotation/freezed_annotation.dart"; -import "package:nexus/models/content/content.dart"; part "send_event_request.freezed.dart"; part "send_event_request.g.dart"; @@ -8,9 +7,7 @@ abstract class SendEventRequest with _$SendEventRequest { const factory SendEventRequest({ required String roomId, required String type, - required Content content, - String? relatesTo, - String? relationType, + required Map content, @Default(false) bool synchronous, @Default(false) bool disableEncryption, }) = _SendEventRequest; diff --git a/lib/widgets/member_list.dart b/lib/widgets/member_list.dart index 46c56a8..d910b97 100644 --- a/lib/widgets/member_list.dart +++ b/lib/widgets/member_list.dart @@ -143,8 +143,8 @@ class MemberList extends HookConsumerWidget { if (member.content case MembershipContent content) { showModalBottomSheet( - constraints: .loose( - .new( + constraints: BoxConstraints.loose( + Size( 500, (context.size?.height ?? 1000) - 80, ),