render PinnedEventsContent

This commit is contained in:
Henry Hiles 2026-05-26 19:25:41 -04:00
commit 3d6ebedd94
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -11,6 +11,7 @@ import "package:nexus/models/content/history_visibility.dart";
import "package:nexus/models/content/join_rules.dart"; import "package:nexus/models/content/join_rules.dart";
import "package:nexus/models/content/membership.dart"; import "package:nexus/models/content/membership.dart";
import "package:nexus/models/content/message.dart"; import "package:nexus/models/content/message.dart";
import "package:nexus/models/content/pinned_events.dart";
import "package:nexus/models/content/power_levels.dart"; import "package:nexus/models/content/power_levels.dart";
import "package:nexus/models/event.dart"; import "package:nexus/models/event.dart";
import "package:nexus/widgets/lazy_loading/message_displayname.dart"; import "package:nexus/widgets/lazy_loading/message_displayname.dart";
@ -49,6 +50,7 @@ class EventRenderer extends ConsumerWidget {
"An error occurred while parsing this event:\n$parseError\n${parseError.stackTrace}", "An error occurred while parsing this event:\n$parseError\n${parseError.stackTrace}",
style: errorStyle, style: errorStyle,
), ),
MessageContent() || EncryptedContent() => MessageRenderer( MessageContent() || EncryptedContent() => MessageRenderer(
event, event,
onTapReply: onTapReply, onTapReply: onTapReply,
@ -56,28 +58,34 @@ class EventRenderer extends ConsumerWidget {
maxLines: maxLines, maxLines: maxLines,
textOnly: textOnly, textOnly: textOnly,
), ),
MembershipContent content => MembershipContent content =>
event.previousContent is MembershipContent && event.previousContent is MembershipContent &&
(event.previousContent as MembershipContent).status == (event.previousContent as MembershipContent).status ==
content.status content.status
? null ? null
: MembershipRenderer(event), : MembershipRenderer(event),
AvatarContent() => GenericEventRenderer(Icons.interests, [ AvatarContent() => GenericEventRenderer(Icons.interests, [
MessageDisplayname(event), MessageDisplayname(event),
Text("changed the room avatar"), Text("changed the room avatar"),
]), ]),
CreateContent() => GenericEventRenderer(Icons.add, [ CreateContent() => GenericEventRenderer(Icons.add, [
MessageDisplayname(event), MessageDisplayname(event),
Text("created the room"), Text("created the room"),
]), ]),
PowerLevelsContent() => GenericEventRenderer(Icons.add, [ PowerLevelsContent() => GenericEventRenderer(Icons.add, [
MessageDisplayname(event), MessageDisplayname(event),
Text("changed the room's power levels"), Text("changed the room's power levels"),
]), ]),
JoinRulesContent() => GenericEventRenderer(Icons.add, [ JoinRulesContent() => GenericEventRenderer(Icons.add, [
MessageDisplayname(event), MessageDisplayname(event),
Text("changed the room's join rules"), Text("changed the room's join rules"),
]), ]),
HistoryVisibilityContent(:final historyVisibility) => HistoryVisibilityContent(:final historyVisibility) =>
GenericEventRenderer(Icons.history, [ GenericEventRenderer(Icons.history, [
MessageDisplayname(event), MessageDisplayname(event),
@ -90,6 +98,12 @@ class EventRenderer extends ConsumerWidget {
}}", }}",
), ),
]), ]),
PinnedEventsContent() => GenericEventRenderer(Icons.push_pin, [
MessageDisplayname(event),
Text("pinned/unpinned some events"),
]),
CanonicalAliasContent(:final alias, :final altAliases) => CanonicalAliasContent(:final alias, :final altAliases) =>
GenericEventRenderer(Icons.numbers, [ GenericEventRenderer(Icons.numbers, [
MessageDisplayname(event), MessageDisplayname(event),