add GomuksEvent model

This commit is contained in:
Henry Hiles 2026-11-03 15:16:38 -05:00
commit b154b4ee2e
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -4,8 +4,10 @@ import "package:collection/collection.dart";
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/models/event.dart";
import "package:nexus/models/events_decrypted.dart";
import "package:nexus/models/read_receipt.dart";
import "package:nexus/models/room.dart";
import "package:nexus/models/sync_data.dart";
class RoomsController extends Notifier<IMap<String, Room>> {
@override
@ -82,6 +84,29 @@ class RoomsController extends Notifier<IMap<String, Room>> {
),
);
void handleSync(SyncData sync) {
if (sync.clearState) state = .new();
update(sync.rooms, sync.leftRooms);
}
void handleDecrypted(EventsDecrypted decrypted) {
final metadata = state[decrypted.roomId]?.metadata;
update(
.new({
decrypted.roomId: .new(
events: decrypted.events,
metadata: metadata?.copyWith(
previewEventRowID:
decrypted.previewEventRowID ?? metadata.previewEventRowID,
sortingTimestamp:
decrypted.sortingTimestamp ?? metadata.sortingTimestamp,
),
),
}),
);
}
static IMap<String, ISet<int>> addRelations(
IMap<String, ISet<int>> relations,
Iterable<Event> events,