This commit is contained in:
Henry Hiles 2026-01-30 02:13:46 +01:00
commit bfd0b1ec47
No known key found for this signature in database
15 changed files with 186 additions and 89 deletions

View file

@ -1,3 +1,4 @@
import "package:collection/collection.dart";
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/new_events_controller.dart";
@ -28,16 +29,22 @@ class RoomsController extends Notifier<IMap<String, Room>> {
),
state: incoming.state.entries.fold(
existing.state,
(stateAcc, event) => stateAcc.add(
(previousValue, event) => previousValue.add(
event.key,
(stateAcc[event.key] ?? IMap<dynamic, dynamic>()).addAll(
(previousValue[event.key] ?? const IMap.empty()).addAll(
event.value,
),
),
),
timeline: incoming.reset
? incoming.timeline
: existing.timeline.addAll(incoming.timeline),
timeline:
(incoming.reset
? incoming.timeline
: existing.timeline.updateById(
incoming.timeline,
(item) => item.timelineRowId,
))
.sortedBy((element) => element.timelineRowId)
.toIList(),
receipts: incoming.receipts.entries.fold(
existing.receipts,
(receiptAcc, event) => receiptAcc.add(