add tombstone support

Fixes #147
This commit is contained in:
Henry Hiles 2026-11-03 16:53:28 -05:00
commit 029efe7c0a
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 225 additions and 70 deletions

View file

@ -16,6 +16,7 @@ import "package:nexus/models/content/redaction.dart";
import "package:nexus/models/content/server_acl.dart";
import "package:nexus/models/content/space_child.dart";
import "package:nexus/models/content/topic.dart";
import "package:nexus/models/content/tombstone.dart";
import "package:nexus/models/content/sticker.dart";
import "package:nexus/models/content/history_visibility.dart";
import "package:nexus/models/content/image_pack.dart";
@ -64,7 +65,7 @@ enum EventType(
avatar("m.room.avatar", AvatarContent.fromJson),
topic("m.room.topic", TopicContent.fromJson),
name("m.room.name", NameContent.fromJson),
tombstone("m.room.tombstone", Content.fromJson),
tombstone("m.room.tombstone", TombstoneContent.fromJson),
reaction("m.reaction", ReactionContent.fromJson),
pinnedEvents("m.room.pinned_events", PinnedEventsContent.fromJson),
spaceChild("m.space.child", SpaceChildContent.fromJson),

View file

@ -0,0 +1,17 @@
import "package:freezed_annotation/freezed_annotation.dart";
import "package:nexus/models/content/content.dart";
part "tombstone.freezed.dart";
part "tombstone.g.dart";
@Freezed(toJson: false, fromJson: false)
@JsonSerializable()
class const TombstoneContent({
final String body = "",
required final String replacementRoom,
}) extends Content with _$TombstoneContent {
@override
Map<String, Object?> toJson() => _$TombstoneContentToJson(this);
factory TombstoneContent.fromJson(Map<String, Object?> json) =>
_$TombstoneContentFromJson(json);
}