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:fast_immutable_collections/fast_immutable_collections.dart";
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:flutter_riverpod/flutter_riverpod.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/rooms_controller.dart";
|
||||||
import "package:nexus/controllers/top_level_spaces_controller.dart";
|
import "package:nexus/controllers/top_level_spaces_controller.dart";
|
||||||
import "package:nexus/controllers/space_edges_controller.dart";
|
import "package:nexus/controllers/space_edges_controller.dart";
|
||||||
|
|
@ -57,12 +58,28 @@ class SpacesController extends Notifier<IList<Space>> {
|
||||||
)
|
)
|
||||||
.map((e) => e.value);
|
.map((e) => e.value);
|
||||||
|
|
||||||
|
final accountData = ref.watch(AccountDataController.provider);
|
||||||
|
|
||||||
|
final directMessages = IMap(
|
||||||
|
accountData["m.direct"]?.content ?? {},
|
||||||
|
).values.expand((element) => element);
|
||||||
|
|
||||||
final homeRooms = otherRooms
|
final homeRooms = otherRooms
|
||||||
.where((room) => room.metadata?.dmUserId == null)
|
.where(
|
||||||
|
(room) =>
|
||||||
|
directMessages.any(
|
||||||
|
(directMessage) => directMessage == room.metadata?.id,
|
||||||
|
) ==
|
||||||
|
false,
|
||||||
|
)
|
||||||
.toIList();
|
.toIList();
|
||||||
|
|
||||||
final dmRooms = otherRooms
|
final dmRooms = otherRooms
|
||||||
.where((room) => room.metadata?.dmUserId != null)
|
.where(
|
||||||
|
(room) => directMessages.any(
|
||||||
|
(directMessage) => directMessage == room.metadata?.id,
|
||||||
|
),
|
||||||
|
)
|
||||||
.toIList();
|
.toIList();
|
||||||
|
|
||||||
final topLevelSpacesList = topLevelSpaceIds
|
final topLevelSpacesList = topLevelSpaceIds
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue