wip
This commit is contained in:
parent
92eedc92ab
commit
c2214fcc44
15 changed files with 186 additions and 89 deletions
|
|
@ -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,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue