From 56057a83406bff42eaa623924b7283e92c05beb6 Mon Sep 17 00:00:00 2001 From: Gordon Hayes Date: Thu, 16 Jun 2022 09:45:05 +0200 Subject: [PATCH] docs: fix user list view doc --- .../stream_user_list_view.mdx | 71 ++++++++++--------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/docusaurus/docs/Flutter/stream_chat_flutter/stream_user_list_view.mdx b/docusaurus/docs/Flutter/stream_chat_flutter/stream_user_list_view.mdx index 1a8cbbf8..95bfbac9 100644 --- a/docusaurus/docs/Flutter/stream_chat_flutter/stream_user_list_view.mdx +++ b/docusaurus/docs/Flutter/stream_chat_flutter/stream_user_list_view.mdx @@ -24,26 +24,22 @@ Make sure to check the [StreamUserListController](./stream_user_list_controller. ```dart class UserListPage extends StatefulWidget { - const UserListPage({ - Key? key, - required this.client, - }) : super(key: key); - - final StreamChatClient client; + const UserListPage({Key? key}) : super(key: key); @override State createState() => _UserListPageState(); } class _UserListPageState extends State { - late final _controller = StreamUserListController( - client: widget.client, + late final StreamUserListController _userListController = + StreamUserListController( + client: StreamChat.of(context).client, limit: 25, - filter: Filter.and([ - Filter.notEqual('id', StreamChat.of(context).currentUser!.id), - ]), + filter: Filter.and( + [Filter.notEqual('id', StreamChat.of(context).currentUser!.id)], + ), sort: [ - SortOption( + const SortOption( 'name', direction: 1, ), @@ -51,29 +47,14 @@ class _UserListPageState extends State { ); @override - void dispose() { - _controller.dispose(); - super.dispose(); + Widget build(BuildContext context) { + return RefreshIndicator( + onRefresh: () => _userListController.refresh(), + child: StreamUserListView( + controller: _userListController, + ), + ); } - - @override - Widget build(BuildContext context) => Scaffold( - body: RefreshIndicator( - onRefresh: _controller.refresh, - child: StreamChannelListView( - controller: _controller, - onChannelTap: (channel) => Navigator.push( - context, - MaterialPageRoute( - builder: (_) => StreamChannel( - channel: channel, - child: const ChannelPage(), - ), - ), - ), - ), - ), - ); } ``` @@ -89,3 +70,25 @@ StreamUsersListView( }, ), ``` + +### Selecting Users + +The `StreamUserListView` widget allows selecting users in a list. The `defaultWidget` returned can be customized to indicate that it has been selected. + +```dart +Set _selectedUsers = {}; + +StreamUserListView( + controller: _userListController, + itemBuilder: (context, users, index, defaultWidget) { + return defaultWidget.copyWith( + selected: _selectedUsers.contains(users[index]), + ); + }, + onUserTap: (user) { + setState(() { + _selectedUsers.add(user); + }); + }, +); +```