From 05b15c44ecaa4ab672fe5612075bd4a8f5693183 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sat, 16 May 2026 11:09:05 -0400 Subject: [PATCH] add pinned events content type --- lib/models/content/content.dart | 2 ++ lib/models/content/message.dart | 5 ----- lib/models/content/pinned_events.dart | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 lib/models/content/pinned_events.dart diff --git a/lib/models/content/content.dart b/lib/models/content/content.dart index 5d3820f..9e145c1 100644 --- a/lib/models/content/content.dart +++ b/lib/models/content/content.dart @@ -8,6 +8,7 @@ import "package:nexus/models/content/join_rules.dart"; import "package:nexus/models/content/membership.dart"; import "package:nexus/models/content/message.dart"; import "package:nexus/models/content/name.dart"; +import "package:nexus/models/content/pinned_events.dart"; import "package:nexus/models/content/power_levels.dart"; import "package:nexus/models/content/server_acl.dart"; import "package:nexus/models/content/topic.dart"; @@ -38,6 +39,7 @@ enum EventType { avatar("m.room.avatar", AvatarContent.fromJson), topic("m.room.topic", TopicContent.fromJson), name("m.room.name", NameContent.fromJson), + pinnedEvents("m.room.pinned_events", PinnedEventsContent.fromJson), message("m.room.message", MessageContent.fromJson); final String type; diff --git a/lib/models/content/message.dart b/lib/models/content/message.dart index 3c0ebdc..c61fb25 100644 --- a/lib/models/content/message.dart +++ b/lib/models/content/message.dart @@ -18,7 +18,6 @@ abstract class MessageContent extends Content with _$MessageContent { @FreezedUnionValue("m.image") const factory MessageContent.image({ - required String msgtype, required String body, String? format, String? formattedBody, @@ -30,7 +29,6 @@ abstract class MessageContent extends Content with _$MessageContent { @FreezedUnionValue("m.file") const factory MessageContent.file({ - required String msgtype, required String body, String? format, String? formattedBody, @@ -42,7 +40,6 @@ abstract class MessageContent extends Content with _$MessageContent { @FreezedUnionValue("m.audio") const factory MessageContent.audio({ - required String msgtype, required String body, String? format, String? formattedBody, @@ -54,7 +51,6 @@ abstract class MessageContent extends Content with _$MessageContent { @FreezedUnionValue("m.video") const factory MessageContent.video({ - required String msgtype, required String body, String? format, String? formattedBody, @@ -66,7 +62,6 @@ abstract class MessageContent extends Content with _$MessageContent { @FreezedUnionValue("m.location") const factory MessageContent.location({ - required String msgtype, required String body, required Uri geoUri, }) = _LocationMessageContent; diff --git a/lib/models/content/pinned_events.dart b/lib/models/content/pinned_events.dart new file mode 100644 index 0000000..a259ba4 --- /dev/null +++ b/lib/models/content/pinned_events.dart @@ -0,0 +1,16 @@ +import "package:fast_immutable_collections/fast_immutable_collections.dart"; +import "package:freezed_annotation/freezed_annotation.dart"; +import "package:nexus/models/content/content.dart"; +part "pinned_events.freezed.dart"; +part "pinned_events.g.dart"; + +@freezed +abstract class PinnedEventsContent extends Content with _$PinnedEventsContent { + PinnedEventsContent._(); + const factory PinnedEventsContent({ + @Default(IList.empty()) IList pinned, + }) = _PinnedEventsContent; + + factory PinnedEventsContent.fromJson(Map json) => + _$PinnedEventsContentFromJson(json); +}