Use account data for filtering DMs
This commit is contained in:
parent
97f4bc78f0
commit
2b4da17a35
1 changed files with 19 additions and 2 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:nexus/controllers/account_data_controller.dart";
|
||||
import "package:nexus/controllers/rooms_controller.dart";
|
||||
import "package:nexus/controllers/top_level_spaces_controller.dart";
|
||||
import "package:nexus/controllers/space_edges_controller.dart";
|
||||
|
|
@ -57,12 +58,28 @@ class SpacesController extends Notifier<IList<Space>> {
|
|||
)
|
||||
.map((e) => e.value);
|
||||
|
||||
final accountData = ref.watch(AccountDataController.provider);
|
||||
|
||||
final directMessages = IMap(
|
||||
accountData["m.direct"]?.content ?? {},
|
||||
).values.expand((element) => element);
|
||||
|
||||
final homeRooms = otherRooms
|
||||
.where((room) => room.metadata?.dmUserId == null)
|
||||
.where(
|
||||
(room) =>
|
||||
directMessages.any(
|
||||
(directMessage) => directMessage == room.metadata?.id,
|
||||
) ==
|
||||
false,
|
||||
)
|
||||
.toIList();
|
||||
|
||||
final dmRooms = otherRooms
|
||||
.where((room) => room.metadata?.dmUserId != null)
|
||||
.where(
|
||||
(room) => directMessages.any(
|
||||
(directMessage) => directMessage == room.metadata?.id,
|
||||
),
|
||||
)
|
||||
.toIList();
|
||||
|
||||
final topLevelSpacesList = topLevelSpaceIds
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue