diff --git a/lib/controllers/room_chat.dart b/lib/controllers/room_chat.dart index 0cd1011..2227225 100644 --- a/lib/controllers/room_chat.dart +++ b/lib/controllers/room_chat.dart @@ -43,7 +43,7 @@ class RoomChatController(final String roomId) .toEntryIList(compare: (a, b) => (a?.key ?? 0).compareTo(b?.key ?? 0)) .map((element) => element.value) .toIList() - .addAll(room.sticky) + .addAll(room.clientSticky) .map((entry) { final foundEvent = entry == null ? null : room.events[entry]; @@ -173,7 +173,7 @@ class RoomChatController(final String roomId) .new({ roomId: .new( events: .new({event.rowId: event}), - sticky: .new({event.rowId}), + clientSticky: .new({event.rowId}), ), }), .new(), diff --git a/lib/controllers/rooms.dart b/lib/controllers/rooms.dart index d0c6eb9..ff4d6a2 100644 --- a/lib/controllers/rooms.dart +++ b/lib/controllers/rooms.dart @@ -1,4 +1,5 @@ import "dart:isolate"; + import "package:fast_immutable_collections/fast_immutable_collections.dart"; import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:nexus/models/event.dart"; @@ -46,10 +47,10 @@ class RoomsController extends Notifier> { roomId, existing?.copyWith( hasMore: incoming.hasMore, - sticky: - (incoming.sticky.isEmpty == true - ? existing.sticky - : existing.sticky.addAll(incoming.sticky)) + clientSticky: + (incoming.clientSticky.isEmpty == true + ? existing.clientSticky + : existing.clientSticky.addAll(incoming.clientSticky)) .removeWhere( (rowId) => incoming.timeline.values.contains(rowId), ), diff --git a/lib/models/room.dart b/lib/models/room.dart index d030043..6d7553f 100644 --- a/lib/models/room.dart +++ b/lib/models/room.dart @@ -15,7 +15,7 @@ class const Room({ @JsonKey(fromJson: Room.timelineTupleJsonToIMap) final IMap timeline = const IMap.empty(), - final ISet sticky = const ISet.empty(), + final ISet clientSticky = const ISet.empty(), @JsonKey(fromJson: Room.eventsJsonToIMap) final IMap events = const IMap.empty(), @@ -34,7 +34,7 @@ class const Room({ }) with _$Room { /// [timeline] is an IMap of timelineRowId to eventRowId /// [events] is an IMap of eventRowId to event - /// [sticky] is an ISet of eventRowId + /// [clientSticky] is an ISet of eventRowId static IMap timelineTupleJsonToIMap(List json) => IMap.fromEntries( json.map(