add and render HistoryVisibilityContent
This commit is contained in:
parent
ec64a81fed
commit
70eba46c76
3 changed files with 47 additions and 0 deletions
|
|
@ -14,6 +14,7 @@ import "package:nexus/models/content/encrypted.dart";
|
||||||
import "package:nexus/models/content/redaction.dart";
|
import "package:nexus/models/content/redaction.dart";
|
||||||
import "package:nexus/models/content/server_acl.dart";
|
import "package:nexus/models/content/server_acl.dart";
|
||||||
import "package:nexus/models/content/topic.dart";
|
import "package:nexus/models/content/topic.dart";
|
||||||
|
import "package:nexus/models/content/history_visibility.dart";
|
||||||
|
|
||||||
class Content {
|
class Content {
|
||||||
final Error? parseError;
|
final Error? parseError;
|
||||||
|
|
@ -44,6 +45,10 @@ enum EventType {
|
||||||
encryption("m.room.encryption", EncryptionContent.fromJson),
|
encryption("m.room.encryption", EncryptionContent.fromJson),
|
||||||
membership("m.room.member", MembershipContent.fromJson),
|
membership("m.room.member", MembershipContent.fromJson),
|
||||||
create("m.room.create", CreateContent.fromJson),
|
create("m.room.create", CreateContent.fromJson),
|
||||||
|
historyVisibility(
|
||||||
|
"m.room.history_visibility",
|
||||||
|
HistoryVisibilityContent.fromJson,
|
||||||
|
),
|
||||||
canonicalAlias("m.room.canonical_alias", CanonicalAliasContent.fromJson),
|
canonicalAlias("m.room.canonical_alias", CanonicalAliasContent.fromJson),
|
||||||
joinRules("m.room.join_rules", JoinRulesContent.fromJson),
|
joinRules("m.room.join_rules", JoinRulesContent.fromJson),
|
||||||
powerLevels("m.room.power_levels", PowerLevelsContent.fromJson),
|
powerLevels("m.room.power_levels", PowerLevelsContent.fromJson),
|
||||||
|
|
|
||||||
19
lib/models/content/history_visibility.dart
Normal file
19
lib/models/content/history_visibility.dart
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
import "package:freezed_annotation/freezed_annotation.dart";
|
||||||
|
import "package:nexus/models/content/content.dart";
|
||||||
|
part "history_visibility.freezed.dart";
|
||||||
|
part "history_visibility.g.dart";
|
||||||
|
|
||||||
|
@freezed
|
||||||
|
abstract class HistoryVisibilityContent extends Content
|
||||||
|
with _$HistoryVisibilityContent {
|
||||||
|
HistoryVisibilityContent._();
|
||||||
|
factory HistoryVisibilityContent({
|
||||||
|
required HistoryVisibility historyVisibility,
|
||||||
|
}) = _HistoryVisibilityContent;
|
||||||
|
|
||||||
|
factory HistoryVisibilityContent.fromJson(Map<String, Object?> json) =>
|
||||||
|
_$HistoryVisibilityContentFromJson(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonEnum(fieldRename: FieldRename.snake)
|
||||||
|
enum HistoryVisibility { invited, joined, shared, worldReadable }
|
||||||
|
|
@ -7,8 +7,11 @@ import "package:nexus/models/content/canonical_alias.dart";
|
||||||
import "package:nexus/models/content/content.dart";
|
import "package:nexus/models/content/content.dart";
|
||||||
import "package:nexus/models/content/create.dart";
|
import "package:nexus/models/content/create.dart";
|
||||||
import "package:nexus/models/content/encrypted.dart";
|
import "package:nexus/models/content/encrypted.dart";
|
||||||
|
import "package:nexus/models/content/history_visibility.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/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";
|
||||||
import "package:nexus/widgets/renderers/message.dart";
|
import "package:nexus/widgets/renderers/message.dart";
|
||||||
|
|
@ -67,6 +70,26 @@ class EventRenderer extends ConsumerWidget {
|
||||||
MessageDisplayname(event),
|
MessageDisplayname(event),
|
||||||
Text("created the room"),
|
Text("created the room"),
|
||||||
]),
|
]),
|
||||||
|
PowerLevelsContent() => GenericEventRenderer(Icons.add, [
|
||||||
|
MessageDisplayname(event),
|
||||||
|
Text("changed the room's power levels"),
|
||||||
|
]),
|
||||||
|
JoinRulesContent() => GenericEventRenderer(Icons.add, [
|
||||||
|
MessageDisplayname(event),
|
||||||
|
Text("changed the room's join rules"),
|
||||||
|
]),
|
||||||
|
HistoryVisibilityContent(:final historyVisibility) =>
|
||||||
|
GenericEventRenderer(Icons.history, [
|
||||||
|
MessageDisplayname(event),
|
||||||
|
Text(
|
||||||
|
"changed the room's history visibility to ${switch (historyVisibility) {
|
||||||
|
HistoryVisibility.invited => "since invited",
|
||||||
|
HistoryVisibility.joined => "since joined",
|
||||||
|
HistoryVisibility.shared => "all history visible (shared)",
|
||||||
|
HistoryVisibility.worldReadable => "all history visible (world readable)",
|
||||||
|
}}",
|
||||||
|
),
|
||||||
|
]),
|
||||||
CanonicalAliasContent(:final alias, :final altAliases) =>
|
CanonicalAliasContent(:final alias, :final altAliases) =>
|
||||||
GenericEventRenderer(Icons.numbers, [
|
GenericEventRenderer(Icons.numbers, [
|
||||||
MessageDisplayname(event),
|
MessageDisplayname(event),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue