forked from Nexus/nexus
Remove flutter chat (#26)
Had to squash merge manually as Forgejo was erroring
This commit is contained in:
parent
bd1d5ea745
commit
16cf126df4
111 changed files with 3162 additions and 2366 deletions
32
lib/controllers/members_by_status_controller.dart
Normal file
32
lib/controllers/members_by_status_controller.dart
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:nexus/controllers/members_controller.dart";
|
||||
import "package:nexus/models/configs/members_by_status_config.dart";
|
||||
import "package:nexus/models/content/membership.dart";
|
||||
import "package:nexus/models/event.dart";
|
||||
|
||||
class MembersByStatusController extends AsyncNotifier<ISet<Event>> {
|
||||
final MembersByStatusConfig config;
|
||||
MembersByStatusController(this.config);
|
||||
|
||||
@override
|
||||
Future<ISet<Event>> build() => ref.watch(
|
||||
MembersController.provider(config.roomId).selectAsync(
|
||||
(members) => members
|
||||
.where(
|
||||
(membership) => switch (membership.content) {
|
||||
MembershipContent(:final status) => config.status == status,
|
||||
_ => false,
|
||||
},
|
||||
)
|
||||
.toISet(),
|
||||
),
|
||||
);
|
||||
|
||||
static final provider =
|
||||
AsyncNotifierProvider.family<
|
||||
MembersByStatusController,
|
||||
ISet<Event>,
|
||||
MembersByStatusConfig
|
||||
>(MembersByStatusController.new);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue