diff --git a/lib/widgets/chat_page/member_list.dart b/lib/widgets/chat_page/member_list.dart index 2d8f54f..2e358b2 100644 --- a/lib/widgets/chat_page/member_list.dart +++ b/lib/widgets/chat_page/member_list.dart @@ -14,53 +14,54 @@ class MemberList extends ConsumerWidget { child: ref .watch(MembersController.provider(room)) .betterWhen( - data: (members) => ListView( - children: [ - AppBar( - scrolledUnderElevation: 0, - leading: Icon(Icons.people), - title: Text("Members"), - actionsPadding: EdgeInsets.only(right: 4), - actions: [ - if (Scaffold.of(context).hasEndDrawer) - IconButton( - onPressed: Scaffold.of(context).closeEndDrawer, - icon: Icon(Icons.close), + data: (members) { + final joined = members.where( + (membership) => + membership.content["membership"] == + "join", // TODO: Show invites seperately + ); + return ListView( + children: [ + AppBar( + scrolledUnderElevation: 0, + leading: Icon(Icons.people), + title: Text("Members (${joined.length})"), + actionsPadding: EdgeInsets.only(right: 4), + actions: [ + if (Scaffold.of(context).hasEndDrawer) + IconButton( + onPressed: Scaffold.of(context).closeEndDrawer, + icon: Icon(Icons.close), + ), + ], + ), + ...joined.map( + (member) => ListTile( + onTap: () {}, + // leading: AvatarOrHash( TODO + // ref + // .watch( + // AvatarController.provider( + // member.content["avatar_url"].toString(), + // ), + // ) + // .whenOrNull(data: (data) => data), + // member.content["displayname"].toString(), + // headers: room.client.headers, + // ), + title: Text( + member.content["displayname"].toString(), + overflow: TextOverflow.ellipsis, ), - ], - ), - ...members - .where( - (membership) => - membership.content["membership"] == - "join", // TODO: Show invites seperately - ) - .map( - (member) => ListTile( - onTap: () {}, - // leading: AvatarOrHash( TODO - // ref - // .watch( - // AvatarController.provider( - // member.content["avatar_url"].toString(), - // ), - // ) - // .whenOrNull(data: (data) => data), - // member.content["displayname"].toString(), - // headers: room.client.headers, - // ), - title: Text( - member.content["displayname"].toString(), - overflow: TextOverflow.ellipsis, - ), - subtitle: Text( - member.authorId, - overflow: TextOverflow.ellipsis, - ), + subtitle: Text( + member.authorId, + overflow: TextOverflow.ellipsis, ), ), - ], - ), + ), + ], + ); + }, ), ); }