mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +00:00
Display the list of members of a group
This commit is contained in:
@ -1,3 +1,10 @@
|
||||
import 'package:comunic/helpers/groups_helper.dart';
|
||||
import 'package:comunic/helpers/users_helper.dart';
|
||||
import 'package:comunic/lists/group_members_list.dart';
|
||||
import 'package:comunic/lists/users_list.dart';
|
||||
import 'package:comunic/models/group_membership.dart';
|
||||
import 'package:comunic/ui/widgets/account_image_widget.dart';
|
||||
import 'package:comunic/ui/widgets/async_screen_widget.dart';
|
||||
import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@ -18,6 +25,17 @@ class GroupMembersScreen extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _GroupMembersScreenState extends State<GroupMembersScreen> {
|
||||
GroupMembersList _members;
|
||||
UsersList _users;
|
||||
|
||||
Future<void> _refresh() async {
|
||||
final members = await GroupsHelper.getMembersList(widget.groupID);
|
||||
final users = await UsersHelper().getListWithThrow(members.usersID);
|
||||
|
||||
_members = members;
|
||||
_users = users;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@ -25,6 +43,30 @@ class _GroupMembersScreenState extends State<GroupMembersScreen> {
|
||||
leading: ComunicBackButton(),
|
||||
title: Text(tr("Group members")),
|
||||
),
|
||||
body: _buildBody(),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildBody() => AsyncScreenWidget(
|
||||
onReload: _refresh,
|
||||
onBuild: _buildBodyContent,
|
||||
errorMessage: tr("Could not load the list of members of this group!"),
|
||||
);
|
||||
|
||||
Widget _buildBodyContent() {
|
||||
return ListView(
|
||||
children: _members.map(_buildGroupMemberTile).toList(),
|
||||
);
|
||||
}
|
||||
|
||||
ListTile _buildGroupMemberTile(GroupMembership membership) {
|
||||
final user = _users.getUser(membership.userID);
|
||||
|
||||
return ListTile(
|
||||
leading: AccountImageWidget(
|
||||
user: user,
|
||||
),
|
||||
title: Text(user.displayName),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user