This commit is contained in:
Henry Hiles 2026-01-30 02:13:46 +01:00
commit bfd0b1ec47
No known key found for this signature in database
15 changed files with 186 additions and 89 deletions

View file

@ -1,22 +1,26 @@
import "package:collection/collection.dart";
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:matrix/matrix.dart";
import "package:nexus/models/event.dart";
import "package:nexus/models/room.dart";
class MembersController extends AsyncNotifier<IList<MatrixEvent>> {
class MembersController extends AsyncNotifier<IList<Event>> {
final Room room;
MembersController(this.room);
@override
Future<IList<MatrixEvent>> build() async => IList(
(await room.client.getMembersByRoom(
room.id,
notMembership: Membership.leave,
)) ??
[],
);
Future<IList<Event>> build() async =>
(room.state["m.room.member"]?.values ?? [])
.map(
(eventRowId) => room.events.firstWhereOrNull(
(event) => event.rowId == eventRowId,
),
)
.nonNulls
.toIList();
static final provider = AsyncNotifierProvider.family
.autoDispose<MembersController, IList<MatrixEvent>, Room>(
.autoDispose<MembersController, IList<Event>, Room>(
MembersController.new,
);
}