chore: Follow up fix pinned event ids

This commit is contained in:
Christian Pauly 2022-02-17 14:02:17 +01:00
parent 5bd892668a
commit 5a5efe9de2

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),
);
}