Merge branch 'krille/fix-pinned-events' into 'main'

chore: Follow up fix pinned event ids

See merge request famedly/fluffychat!741
This commit is contained in:
Krille Fear 2022-02-17 13:20:18 +00:00
commit df8420a17f

View File

@ -886,18 +886,16 @@ class ChatController extends State<Chat> {
if (room == null) return;
final pinnedEventIds = room.pinnedEventIds;
final selectedEventIds = selectedEvents.map((e) => e.eventId).toSet();
final pin = selectedEventIds.any((e) => !pinnedEventIds.contains(e));
final unpin = selectedEventIds.length == 1 &&
pinnedEventIds.contains(selectedEventIds.single);
if (unpin) {
pinnedEventIds.removeWhere(selectedEventIds.contains);
} else {
pinnedEventIds.addAll(selectedEventIds);
}
showFutureLoadingDialog(
context: context,
future: () => room.setPinnedEvents(
pin
? <String>{
...pinnedEventIds,
...selectedEvents.map((e) => e.eventId),
}.toList()
: pinnedEventIds
..removeWhere(selectedEventIds.contains),
),
future: () => room.setPinnedEvents(pinnedEventIds),
);
}